Estoy intentando saltar a JavaFX desde Swing. Pero no puedo encontrar cómo obtener el ancho y la altura de un nodo.Obtener la dimensión de un nodo - JavaFX 2
Por lo tanto, aquí hay un poco de código.
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());
Los resultados son los siguientes:
-1.0
0.0
-1.0
-1.0
Lo mismo en Swing es:
JComponent.getPreferredSize().width
JComponent.getPreferredSize().height
Gracias
Después de editar:
¿Por qué esto no funciona para mí?
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());
}
}
edité mi primer publicar porque todavía no funciona para mí. No sé cómo responder a mi publicación nuevamente sin editarla, ya que es mi primera publicación aquí. Gracias por ayudar. –
por la misma razón. Está llamando a 'label.getWidth()' antes de colocarla en escena. He agregado una muestra de código corregido. –
Sí, entendí completamente la lógica detrás de esto. Gracias, Sergey. –