Obtenir la Dimension d'un Nœud - JavaFX 2
Je suis en train de sauter à JavaFX Swing. Mais je ne trouve pas comment obtenir la largeur et la hauteur d'un nœud.
Donc, voici un peu de code.
Label label = new Label();
label.setText("Hello");
label.setFont(new Font(32));
System.out.println(label.getPrefWidth());
System.out.println(label.getWidth());
System.out.println(label.getMinWidth());
System.out.println(label.getMaxWidth());
Les résultats sont les suivants:
-1.0
0.0
-1.0
-1.0
La même chose dans les Swing est:
JComponent.getPreferredSize().width
JComponent.getPreferredSize().height
Merci
Après edit:
Pourquoi cela ne fonctionne pas pour moi?
public class Dimensions extends Application {
public static void main(String[] args) {
launch(args);
}
public void start(Stage primaryStage) {
primaryStage.setTitle("Hello World!");
primaryStage.setScene(new Scene(new MyPanel(), 500, 500));
primaryStage.centerOnScreen();
primaryStage.setResizable(false);
primaryStage.show();
}
}
public class MyPanel extends Pane {
public MyPanel() {
Label label = new Label();
label.setText("Hello");
label.setFont(new Font(32));
getChildren().add(label);
label.relocate(150, 150);
System.out.println(label.getWidth());
}
}
Vous devez vous connecter pour publier un commentaire.
La largeur et la hauteur ne sont pas initialisés jusqu'à ce que vous mettez de nœud dans un récipient en fait placé sur la scène, parce qu'ils peuvent changer en fonction du type de conteneur.
Essayer la prochaine:
Dans votre code, de faire des changements à venir:
label.getWidth()
avant il a été placé sur la scène. J'ai ajouté le code corrigé de l'échantillon.Une fois que le nœud est ajouté à l'écran, vous pouvez utiliser: