相关疑难解决方法(0)

将处理草图(PApplet)与javaFX GUI集成(来自GUI Builder 2.0)

我一直在尝试将PApplet与GUI构建器(2.0)中设计的JavaFX GUI集成.创建SwingNode并向其添加草图实例后,在绘制一次后无法更新其框架.

我对JavaFX的经验很少,而且使用Swing,我不知道如何访问我在FXMLDocumentController类之外的GUI构建器中放置的组件.我假设草图需要从JFXP类初始化,但我不知道如何访问SwingNode的内容.理想情况下,我希望能够使用场景构建器[2.0]来创建GUI,而不是非视觉地创建组件.

任何帮助将不胜感激!

FXML控制器:

import java.net.URL;
import java.util.Random;
import java.util.ResourceBundle;
import javafx.embed.swing.SwingNode;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
import javax.swing.JPanel;
import processing.core.*;

public class FXMLDocumentController implements Initializable {

    mySketch p = new mySketch();
    @FXML
    public Label label;
    public SwingNode sn;

    @FXML
    private void handleButtonAction(ActionEvent event) {
        System.out.println("You clicked me!");
        label.setText("Hello World!");

    }

    @Override
    public void initialize(URL url, ResourceBundle rb) {

        JPanel panel = new JPanel();

        panel.add(p);
        p.init();
        sn.setContent(panel);

    }

    static class mySketch extends …
Run Code Online (Sandbox Code Playgroud)

java processing user-interface netbeans javafx

5
推荐指数
0
解决办法
1017
查看次数

如何在javafx中嵌入PApplet?

所以我让我的处理代码在java中运行。但现在我想将它嵌入到我的 GUI 的 JavaFX 中。我怎样才能这样做呢?我尝试使用以下代码,但它似乎不起作用。

 package testprocessing;
import javafx.application.Application;
import javafx.embed.swing.SwingNode;
import javafx.scene.*;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

import javax.swing.JApplet;
import javax.swing.SwingUtilities;
import java.awt.Dimension;

import java.util.concurrent.*;
import processing.core.*;

public class JavaFxApplet extends Application {
    private PApplet applet = new MyProcessingSketch();
    private Dimension appletSize;

    @Override public void init() throws ExecutionException, InterruptedException {
        applet.init();

        FutureTask<Dimension> sizingTask = new FutureTask<>(() ->
            applet.getRootPane().getPreferredSize()
        );
        SwingUtilities.invokeLater(sizingTask);
        appletSize = sizingTask.get();
    }

    @Override public void start(Stage stage) {
        final SwingNode swingNode = new SwingNode();
        SwingUtilities.invokeLater(() ->
            swingNode.setContent(applet.getRootPane())
        ); …
Run Code Online (Sandbox Code Playgroud)

java processing user-interface netbeans javafx

3
推荐指数
1
解决办法
1790
查看次数

标签 统计

java ×2

javafx ×2

netbeans ×2

processing ×2

user-interface ×2