我试图从Swing跳转到JavaFX.但我找不到如何获得节点的宽度和高度.
所以,这里有一些代码.
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());
Run Code Online (Sandbox Code Playgroud)
结果是:
-1.0
0.0
-1.0
-1.0
Run Code Online (Sandbox Code Playgroud)
Swing中的相同之处是:
JComponent.getPreferredSize().width
JComponent.getPreferredSize().height
Run Code Online (Sandbox Code Playgroud)
谢谢
编辑后:
为什么这不适合我?
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();
}
}
Run Code Online (Sandbox Code Playgroud)
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());
}
}
Run Code Online (Sandbox Code Playgroud) 当我使用Eclipse的内容辅助(Ctrl+ Space)时,我不希望看到从对象类继承的方法.我搜索了Eclipse的帮助,但我似乎无法弄明白.