Wie Sie eine JScrollPane zu den darin enthaltenen JTree
hier habe ich ein swing-Größe-Frage:
Ich habe eine JTree
welche enthalten ist innerhalb eines JScrollPane
(, die sich in einer benutzerdefinierten Komponente erweitert JXPanel von swingx, aber ich denke, dass hat nichts zu tun mit dieser Frage).
Egal, wie viele Zeilen hat der Baum, der scrollpane ist immer größer (der Baum ist dynamisch, aber nicht entworfen, um viele Zeilen), aber was ich möchte ist die JScrollPane zur Anpassung an den Baum Anfangshöhe und dann zeigen Sie die vertikale Bildlaufleiste, wenn einige Knoten erweitert werden.
Habe ich versucht, ohne Einstellung jeder Größe an alle, die Einstellung Baum preferred size to null
und Einstellung scrollpane preferred size to null
als gut, aber es ändert sich nichts. Ich WILL NICHT, um die Größe manuell... gibt es eine Möglichkeit, dies zu tun?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich in der Regel verwenden Sie einfach
setVisibleRowCount()
.Versuchen, zu prüfen, Werten von
scrollPane.getHorizontalScrollBarPolicy()
undscrollPane.getVerticalScrollBarPolicy()
. Sie sollte gleichJScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED
undJScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED
. Auch Baum bevorzugte Größe sollte auf null gesetzt werden. Mit diesen beiden Bedingungen Ihre Scrollbalken erscheinen soll\disapper automatisch (vorausgesetzt, Sie verwenden standard -JTree
undJScrollPane
).Nur ich dieses Problem, auftreten und dies ist der beste Weg, es zu tun, ohne Angabe einer Größe von deinem JTree noch Ihre JScrollpane zu setzen, ist JTree zu setViewportView() Methode der JScrollpane.
Ich denke, dies ist der beste Weg, es zu tun, da brauchen Sie nicht die Angabe der Größe der Komponente oder erhalten eine Anzahl der Zeilen anpassen der scrollpane-Komponente.