Wie spezifiziert man eine Breite in JavaFX 2 mit FXML?

8

Ich bin auf der Suche nach einer Möglichkeit, eine maxWidth-Größe in FXML auf 80% zu setzen.

Sehr ähnlich wie in der Webentwicklung.

<VBox fx:id="testVB" prefWidth="600">

Aber das ist nicht:
<VBox fx:id="testVB" prefWidth="80%">

Ich weiß, dass Sie in Straight JavaFX2 non-fxml Inserts erstellen können? Was ist der beste Weg, dies außerhalb des Codes in FMXL zu tun?

Danke!

Riley

    
ril3y 23.03.2012, 01:12
quelle

3 Antworten

17

Ich bin mir nicht sicher, ob Sie das können. Sie müssen die GridPane Layout-Komponente verwenden. In dieser Komponente können Sie Einschränkungen für Zeilen und Spalten angeben. In diesen Einschränkungen können Sie eine Breite als Prozentsatz angeben. Zum Beispiel:

%Vor%

Dieser Code definiert eine GridPane mit einer ersten Spalte mit einer Breite von 80%. Die TitledPane wird in der ersten Zelle der ersten Spalte dieses GridPane gesetzt und kann (weil Sie sicher sein müssen, dass die Breitenbeschränkungen von TitledPane Ihren Anforderungen entsprechen) 80% der Breite von %Code%.

Bitte beachten Sie, dass ich alle Informationen entfernt habe, die für Ihre Frage nicht relevant sind. Das Scene Builder-Tool von Oracle ist übrigens sehr nützlich, um ein komplexes FXML-Layout zu definieren.

    
Teocali 07.07.2012, 13:42
quelle
6

Es scheint, dass viele Antworten bereits gegeben wurden und sie funktionieren sollten. Allerdings gibt es eine Möglichkeit, Prozentsätze festzulegen:

%Vor%

Dies würde Ihnen helfen, die Abmessungen des aktuellen Bildschirms zu erkennen, auf dem die Anwendung angezeigt wird. Jetzt, da wir die Anzeigedimensionen haben, können wir in FXML wie folgt damit spielen:

%Vor%

Beachten Sie, dass ich visualBounds verwende, da ich dadurch den verfügbaren Platz auf dem Bildschirm erhalten würde, da ich beispielsweise keine Überschneidung mit der Taskleiste in Windows möchte. Für Vollbild-Anwendungen würden Sie nur 'Grenzen' verwenden.

Nun, um zu Ihrem Punkt der Verwendung von Prozentsätzen zu kommen, können Sie tatsächlich mit dem Wert prefheight und prefWidth spielen. Sie können Berechnungen in $ {} einfügen.

Optional:

Wenn Sie möchten, dass alle Ihre Elemente relative Größen verwenden, verwenden Sie deren Eigenschaften ID und width oder height und berechnen Sie sie.

%Vor%

Hoffe, das hilft!

    
Jarrick 04.01.2017 09:16
quelle
0

Sie können es simulieren - einfaches Beispiel, das 50% für zwei Spalten in einer HBox simuliert. Sie können Dummy-Fenster hinzufügen, um Terzen usw. zu erhalten.

%Vor%     
Tim Beres 04.02.2015 23:19
quelle

Tags und Links