【问题标题】:How to embed JPanel into JavaFX pane?如何将 JPanel 嵌入到 JavaFX 窗格中?
【发布时间】:2015-03-26 04:42:14
【问题描述】:

如何将swingNode 添加到specific 窗格?

我实际上是在尝试添加一个JPanel,它将一个applet加载到下面的透明区域,我不知道该怎么做。

【问题讨论】:

    标签: java swing javafx jpanel pane


    【解决方案1】:

    SwingNode 是一个javafx scene node,可以添加到任何javafx scene layouts

    将 JPanel 添加到 Pane 并在 JavaFX 舞台上显示:

    • 将 JPanel 添加到 SwingNode
    • 将 swingnode 作为子节点分配给任何布局(包括 Pane)。
    • 将布局设置为场景的根
    • 将场景设置到舞台并显示

    显示如何将其添加到窗格的一个非常简单的代码示例是(来自SwingNodeJavadoc):

    public class SwingNodeExample extends Application {
    
         @Override
         public void start(Stage stage) {
             final SwingNode swingNode = new SwingNode();
             createAndSetSwingContent(swingNode);
    
             Pane pane = new Pane();
             pane.getChildren().add(swingNode); // Adding swing node
    
             stage.setScene(new Scene(pane, 100, 50));
             stage.show();
         }
    
         private void createAndSetSwingContent(final SwingNode swingNode) {
             SwingUtilities.invokeLater(new Runnable() {
                 @Override
                 public void run() {
                     JPanel panel = new JPanel();
                     panel.add(new JButton("Click me!"));
                     swingNode.setContent(panel);
                 }
             });
         }
    
         public static void main(String[] args) {
             launch(args);
         }
     }
    

    【讨论】:

    • 谢谢!如果可以的话,我会代表!
    猜你喜欢
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    相关资源
    最近更新 更多