Ich versuche, ein JList
innerhalb eines JScrollPane
zu platzieren und listet die Einträge in vertikalen Spalten wie folgt alphabetisch auf:
Wenn der JList
jedoch nicht mehr genügend Platz hat, um weitere Einträge anzuzeigen, möchte ich, dass JScrollPane
nur in vertikaler Richtung blättert.
Das funktioniert, wenn ich VERTICAL_WRAP
verwende. Wie auch immer, es sieht so aus, als ob ich bei Verwendung von vertikalem Wrap eine horizontale Bildlaufleiste bekomme und wenn ich HORIZONTAL_WRAP
verwende, bekomme ich die Bildlaufleiste, die ich möchte, aber die Objekte werden in einer Reihenfolge platziert, die ich nicht mag. Kann ich meinen Kuchen essen und essen? Hier ist ein einfaches Beispiel für das, was ich versuche.
Dies ist der nächste, den ich bekommen könnte, aber ich möchte in der Lage sein, vertikal zu scrollen, während die vertikale alphabetische Reihenfolge beibehalten wird.
%Vor%Eine Lösung, die ich habe, ist: Wenn die Zellengröße bekannt ist, kann ich einen Komponentenlistener erstellen und auf ein Größenänderungsereignis warten. Wenn dieses Ereignis ausgelöst wird, kann ich die gewünschte Zeilenanzahl berechnen, um horizontales Scrollen zu verhindern. Dies scheint nur ein Hack zu sein, und ich bin nicht sicher, wie es mit Textkomponenten variabler Größe funktionieren könnte.
Wollen Sie das? (Muss die bevorzugte Größe ändern ...)
%Vor%Brilliant Code @Kevin K ... Ich schlage eine kleine Modifikation vor, um ArithmeticException (Division durch Null) zu vermeiden.
%Vor%Tags und Links java user-interface swing jscrollpane jlist