2013-07-19 2 views
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);   
    } 
} 
+0

이 코드는 2012 Macbook Air가 설치된 OS X 10.8.4에서 실행되는 Java 8 빌드 101에서 잘 작동합니다 (즉, 창을 처음 표시 한 JButton을 클릭 할 수 있음). – jewelsea

+0

자바 8 빌드 129에도 동일한 문제가 있습니다. 그러나 invokeLater 내의 코드는 버튼보다 복잡하며 내 윈도우의 크기가 조정 된 후에도 작동하지 않습니다. (또 다른 질문에서, SwingUtilities.invokeLater 대신 Platform.runLater를 사용해야한다는 정보를 받았습니다. 후자는 JavaFX에서 작동하지 않습니다.) (JavaFX/Java 8을 사용하고 있습니다) – adeena

답변

1

코드가 단순하므로 베타 버전의 버그 일 가능성이 큽니다.

관련 문제