【发布时间】:2019-03-08 08:17:23
【问题描述】:
我尝试将Swing 组件添加到JavaFX 应用程序。我用JButton 创建SwingNode 对象,但不将此元素添加到主Scene。关闭主阶段后,应用程序继续运行。我需要做什么来解决这个问题?
此处示例:
public class SwingFx extends Application {
@Override
public void start(Stage stage) {
final SwingNode swingNode = new SwingNode();
createAndSetSwingContent(swingNode);
AnchorPane pane1 = new AnchorPane();
AnchorPane pane2 = new AnchorPane();
pane1.getChildren().add(swingNode);
stage.setScene(new Scene(pane2, 100, 50));
stage.show();
}
private void createAndSetSwingContent(final SwingNode swingNode) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
swingNode.setContent(new JButton("Click me!"));
}
});
}
public static void main(String[] args) {
launch(args);
}
}
【问题讨论】:
-
为什么不将
SwingNode添加到场景中? -
因为初始化时,我不希望这个元素出现在场景中