2013-07-19 60 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

此代碼工作正常關於Java 8構建101(可以點擊立即的JButton首先所示的窗口中)與2012的Macbook Air在OS X 10.8.4上運行。 – jewelsea

+0

我在使用Java 8構建129同樣的問題然而,內部的invokeLater我的代碼比按鈕更復雜,仍然是調整我的窗口後,不能正常工作。 (另外,在另一個問題中,我被告知應該使用Platform.runLater而不是SwingUtilities.invokeLater ...後者不能用於JavaFX)(我正在使用JavaFX/Java 8) – adeena

回答

1

您的代碼很簡單,所以它很可能是測試版中的一個錯誤。