Zunächst einmal bin ich ein langjähriger Java / Swing-Entwickler. Ich habe kürzlich JavaFX 2.2 installiert, um damit herumzuspielen.
Ich erstelle eine ziemlich einfache App, deren Hauptfenster eine Symbolleiste oben und Inhalt im Rest des Fensters hat. Der offensichtliche Weg, dies zu erreichen, besteht darin, ein BorderPane
zu verwenden und ein ToolBar
in den oberen Abschnitt zu stecken. So weit, ist es gut. Ich möchte jedoch einige der Steuerelemente in der Symbolleiste am linken Rand des Fensters und einige am rechten Rand befinden. Ich kann keinen Weg finden, dies zu tun. Ich kann ein unsichtbares Abstandshalterobjekt in die Symbolleiste einfügen, aber ich weiß nur, wie ich es einer festen Breite geben kann; Die Größe des Fensters ändert sich nicht, wenn das Fenster in der Größe geändert wird.
Also dachte ich, anstatt ein ToolBar-Objekt zu verwenden, verwende ich einfach ein HBox
; es sollte einem horizontal orientierten Swing Box
Objekt entsprechen, oder? Und die Klasse Swing Box
verfügt über eine createHorizontalGlue()
-Methode, die einen Spacer mit automatischer Größenanpassung einfügt. Nun, ich kann keine Entsprechung in der JavaFX HBox-Klasse finden. Gibt es keinen einfachen Weg, dies zu tun?
Ich habe herausgefunden, wie man es macht, indem man HBox
anstelle von ToolBar
benutzt, um die Kontrollen zu halten; Der Schlüssel ist die Methode HBox.setHgrow()
, mit der Sie ein Spacer-Objekt festlegen können, das so vergrößert wird, dass es den verfügbaren Platz ausfüllt. Ich weiß immer noch nicht, ob es möglich ist, dies mit einer tatsächlichen ToolBar-Instanz zu tun.