javafx 改变 swingNode 的大小
javafx change size of swingNode
我用 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,所以我在更改节点的大小或位置时遇到了问题
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);
}
});
}
}