2012-09-05 69 views
7

美好的一天!JavaFx 2.2&Fullscreen模式

我尝试我的第一个应用程序JavaFx。我设置了全屏模式并按下按钮显示一个对话框。当出现对话框时,主窗口会丢失全屏。

代码:

public class Test1 extends Application { 

    @Override 
    public void start(final Stage primaryStage) { 
     Button btn = new Button(); 
     btn.setText("Say 'Hello World'"); 
     btn.setOnAction(new EventHandler<ActionEvent>() { 
      @Override 
      public void handle(ActionEvent event) { 
       Stage dialogStage = new Stage(StageStyle.UTILITY); 
       dialogStage.initModality(Modality.APPLICATION_MODAL); 
       dialogStage.setScene(new Scene(VBoxBuilder.create(). 
        children(new Text("Hi"), new Button("Ok.")). 
        alignment(Pos.CENTER).padding(new Insets(5)).build())); 
       dialogStage.show(); 

       System.out.println(dialogStage.getOwner()==primaryStage.getOwner()); 
      } 
     }); 

     StackPane root = new StackPane(); 
     root.getChildren().add(btn); 

     Rectangle2D r = Screen.getPrimary().getBounds(); 
     Scene scene = new Scene(root, r.getWidth(), r.getHeight()); 

     primaryStage.setTitle("Hello World!"); 
     primaryStage.setScene(scene); 
     primaryStage.setFullScreen(true); 
     primaryStage.show(); 
    } 

    public static void main(String[] args) { 
     launch(args); 
    } 
} 

操作系统:Windows 7

回答

6

您需要

dialogStage.initOwner(primaryStage); 
+0

这就是工作。非常感谢。 – Alexander

+0

当对话框打开时,我的屏幕闪烁。如何解决这个问题? – zella

+0

@DarkDarker,它似乎是一个错误,或预计“按设计”。无论如何,您可以在JavaFX Jira Tracker中搜索此问题,并且如果没有像这样的条目,可以将其归档。 –