【问题标题】:Adding a JPanel to Javafx将 JPanel 添加到 Javafx
【发布时间】:2019-10-25 09:40:45
【问题描述】:

我目前正在研究数字签名的签名解决方案。我收到了一个带有 API 的签名平板电脑。 API 已关闭,我无法更改其中的任何内容。现在的问题是我无法处理设备的响应。在进行签名或绘图时,我会收到 JPanel 形式的答案。由于我正在使用 JavaFX 场景进行编程,因此我现在不知道如何将 JPanel 包含到我的场景中。我只学会了使用 JavaFx,所以我对 JPanel 之类的东西并不是很了解。

所以.. 我想知道是否有办法将 Jpanel 添加到 FlowPane。我发现关于这个主题的所有内容都是关于其他方式的线程。当人们试图将 javafx-Components 添加到 Jpanel 时。但不是这样。所以也许很明显如何去做,但我不明白。

JPanel x = pad.startSiganture();
FlowPane flow = new FlowPane();
flow.getChildren.addAll(x);

基本上这就是我梦寐以求的,当然这是行不通的。所以.. 感谢您的任何回应,我希望它可能。

YXCD

【问题讨论】:

    标签: java swing javafx jpanel flowpane


    【解决方案1】:

    是的,这是可能的:将您的 JPanel 添加到 SwingNode,然后将其放入您的 FlowPane:

    SwingNode node = new SwingNode()
    node.setContent(pad.startSiganture());
    FlowPane flow = new FlowPane();
    flow.getChildren.addAll(node);
    

    【讨论】:

      【解决方案2】:

      是的,这可以通过 SwingNode 实现,这是一个可以包含摇摆内容的 javafx 节点,请参阅文档中的内容:

      此类用于将 Swing 内容嵌入到 JavaFX 应用程序中。要显示的内容由 setContent(javax.swing.JComponent) 方法指定,该方法接受 Swing JComponent 的实例。 JComponent 实例中包含的组件层次结构不应包含任何重量级组件,否则 SwingNode 可能无法绘制它。内容会自动重新绘制。所有的输入和焦点事件都被透明地转发到 JComponent 实例给开发者。

      这是一个演示如何使用 SwingNode 的典型模式:

      public class SwingFx extends Application {
      
           @Override
           public void start(Stage stage) {
               final SwingNode swingNode = new SwingNode();
               createAndSetSwingContent(swingNode);
      
               StackPane pane = new StackPane();
               pane.getChildren().add(swingNode);
      
               stage.setScene(new Scene(pane, 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);
           }
       }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-31
        • 1970-01-01
        • 1970-01-01
        • 2011-12-18
        • 2013-08-08
        • 2010-12-18
        • 2011-05-06
        • 2013-05-04
        相关资源
        最近更新 更多