2015-03-03 19 views
0

我有兩個很好的工作窗口(主窗口,第一個窗口)在單獨的.java文件中,在相同的包。JAVAFX - Windows權限調用

該程序處理,如果我調用第一個窗口(從主),主停留在後臺。唯一的問題是,如果我點擊那裏,我仍然可以使用主窗口,並創建無限的第一個窗口。

一個解決方案是關閉主窗口,以避免再次點擊那裏,但我想保持在那裏。爲了使解決方案,我需要一個代碼,使得背景窗口以某種方式被禁用,直到我點擊第一個窗口中的東西。 但要做到這一點,我需要賦予「handler.java」與main一起運行的權利。

任何人有任何想法如何做到這一點?

讓我告訴你2的java文件的方法:

Main.java:

public class program extends Application { 

@Override 
public void start(Stage main) throws Exception { 
    Parent root = FXMLLoader.load(getClass().getResource("mainwindow.fxml")); 
    Scene scene = new Scene(root); 

    main.setScene(scene); 
    main.setTitle("Main); 
    main.setWidth(800); 
    main.setHeight(600); 
    main.setResizable(false); 

      main.show(); 

First.java

public void first() throws Exception { 
    Parent root = FXMLLoader.load(getClass().getResource("first.fxml")); 
    Scene scene = new Scene(root); 
    Stage first = new Stage();  
    first.setScene (scene); 
    first.setTitle("Köszöntjük az Útiokosban!"); 
    first.setWidth(400); 
    first.setHeight(200); 
    first.setResizable(false); 

      first.show(); 

} 
+0

你想使你的第一個窗口一個模式對話框? – omgBob 2015-03-03 10:46:05

+0

難以將其更改爲模態?爲什麼對我更好? – 2015-03-03 10:51:13

+0

模態對話框阻止在對話框打開時訪問父階段。您還可以使您的對話框阻止對應用程序的所有其他窗口的訪問。 – omgBob 2015-03-03 11:17:32

回答

2

使用Stage.initModality,讓您的Stage小號模式之一(阻塞)。

注意:您需要在顯示Stage之前設置模態。

+0

謝謝你的幫助! 如果我可以給2個「正確答案」的標記,我會給另一個。 – 2015-03-03 15:13:18