SwingからJavaFXにジャンプしようとしています。しかし、私はノードの幅と高さを取得する方法を見つけることができません。ノードの寸法を取得する - JavaFX 2
ここには少しのコードがあります。
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());
結果は以下のとおりです。
は-1.0
0.0
-1.0
-1.0
スイングで同じものがある:
JComponent.getPreferredSize().width
JComponent.getPreferredSize().height
が編集した後
ありがとう:
なぜこれは私のために働いていないのですか?
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());
}
}
私は私の最初の編集しましたそれはまだ私のために働いていないので、投稿してください。私はここに私の最初の投稿であるので、それを編集することなく私の投稿に再び答える方法を知らない。助けてくれてありがとう。同様の理由で –
もあります。 sceneに置かれる前に、 'label.getWidth()'を呼び出しています。修正されたコードサンプルを追加しました。 –
はい、私はこれの背後にある論理を完全に理解していました。 Sergeyありがとうございました。 –