그래서 java에서 처리중인 처리 코드가 있습니다. 하지만 이제는 GUI 용 JavaFX에 임베드하려고합니다. 그렇게하려면 어떻게해야합니까? 다음 코드를 사용해 보았지만 작동하지 않는 것 같습니다.javafx에 PApplet을 포함시키는 방법은 무엇입니까?
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())
);
stage.setScene(
new Scene(
new Group(swingNode),
appletSize.getWidth(), appletSize.getHeight(),
Color.BLACK
)
);
stage.show();
}
@Override public void stop() {
applet.stop();
applet.destroy();
}
public static void main(String[] args) {
launch(args);
}
}
getRootPane()에서 오류가 발생합니다. 그 대안을 제안 해 주시겠습니까?
"오류 발생"은 아무 의미도 없습니다. Java는 오류의 원인을 알려주는 데 아주 능숙합니다. 그래서 오류의 원인은 무엇입니까? 컴파일러는 뭐라고 말합니까? 어떤 스택 추적이 인쇄됩니까? 무슨 일이 일어날까요? 정보를 주다. – Kon