4
이 코드를 사용하여 JavaFX8에서 SwingNode를 시도했습니다. 문제는 창 크기가 변경 될 때까지 창을 볼 수 없다는 것입니다. 이동은 작동하지 않습니다. 버튼을 응답 시키려면 마우스를 최대화하거나 크기를 조정해야합니다.javafx 창 크기가 조정될 때까지 SwingNode가 작동하지 않습니다.
나는 javafx8이 아직 베타 버전이라는 점을 알고 있지만, 그렇지 않다면 먼저 창 크기를 조정하지 않고이 작업을 수행하기 위해해야 할 일이 있습니까?
public class SwingNodeTest extends Application {
private SwingNode swingNode;
@Override
public void start(Stage stage) {
swingNode = new SwingNode();
createAndSetSwingContent();
StackPane pane = new StackPane();
pane.getChildren().add(swingNode);
stage.setScene(new Scene(pane, 100, 50));
stage.show();
}
private void createAndSetSwingContent() {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
swingNode.setContent(new JButton("Click me!"));
}
});
}
public static void main(String[] args) {
Application.launch(args);
}
}
이 코드는 2012 Macbook Air가 설치된 OS X 10.8.4에서 실행되는 Java 8 빌드 101에서 잘 작동합니다 (즉, 창을 처음 표시 한 JButton을 클릭 할 수 있음). – jewelsea
자바 8 빌드 129에도 동일한 문제가 있습니다. 그러나 invokeLater 내의 코드는 버튼보다 복잡하며 내 윈도우의 크기가 조정 된 후에도 작동하지 않습니다. (또 다른 질문에서, SwingUtilities.invokeLater 대신 Platform.runLater를 사용해야한다는 정보를 받았습니다. 후자는 JavaFX에서 작동하지 않습니다.) (JavaFX/Java 8을 사용하고 있습니다) – adeena