gpt4 book ai didi

javafx 改变 swingNode 的大小

转载 作者:行者123 更新时间:2023-12-01 09:38:00 25 4
gpt4 key购买 nike

我用 JavaFx 编写了一个简单的应用程序,想在其中使用 swingNode,所以我在更改节点的大小或位置时遇到问题

public class SwingFx extends Application {

@Override
public void start (Stage stage) {
final SwingNode swingNode = new SwingNode();

createSwingContent(swingNode);

StackPane pane = new StackPane();
pane.getChildren().add(swingNode);

stage.setTitle("Swing in JavaFX");
stage.setScene(new Scene(pane, 250, 150));
stage.show();
}

private void createSwingContent(final SwingNode swingNode) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JButton jButton = new JButton("Click me!");
jButton.setBounds(0,0,5,5);
swingNode.setContent(jButton);

}
});
}
}

我设置了 JButton 的边界,但当我运行应用程序时它不起作用按钮出现在中心并具有默认的宽度和高度

最佳答案

如果您想要 setbounds() 工作,您应该使用父容器并将其布局设置为 null

public class SwingFx extends Application {

public static void main(String[] args) {
launch(args);
}

@Override
public void start (Stage stage) {
final SwingNode swingNode = new SwingNode();

createSwingContent(swingNode);

StackPane pane = new StackPane();
pane.getChildren().add(swingNode);

stage.setTitle("Swing in JavaFX");
stage.setScene(new Scene(pane, 250, 150));
stage.show();
}

private void createSwingContent(final SwingNode swingNode) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JButton jButton = new JButton("Click me!");
jButton.setBounds(10,10,50,50);

JPanel panel = new JPanel();
panel.setLayout(null);
panel.add(jButton);

swingNode.setContent(panel);

}
});
}
}

关于javafx 改变 swingNode 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38685610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com