2013-05-29 109 views
1

我創建了一個用javafx打開登錄對話框的窗體,在用戶正確輸入登錄信息後,對話框關閉,主窗體加載了一些數據,我需要的是當登錄對話框關閉時它會返回用戶ID(其使登錄)到主窗體,上述情況下的代碼就是這樣:從javafx對話框返回值

主要形式

Stage loginDialog = new LoginDialog(stage); 
loginDialog.sizeToScene(); 
loginDialog.showAndWait(); 

登錄對話框形式

/* do the login */ 
close(); 
/* need to return thew user id to the main form*/ 

任何幫助請

+0

什麼'UrStageDialogObj.showDialog();'然後'UrStageDialogObj.setMessage(用戶名)'和'UrStageDialogObj.close();' –

回答

2

我建議的第一件事就是創建自己的簡單對話框。 controlsFX的東西很酷,但我的經驗是,一些控件過於複雜,其他人有錯誤。這是一個簡略的例子。

public class DialogBox { 
    private static String[] login; 

    public static String[] display(String title, String message) { 
     Stage window = new Stage(); 
     window.initModality(Modality.APPLICATION_MODAL); 
     window.setTitle(title); 
     window.setWidth(300); 
     window.setHeight(175); 
     window.initStyle(StageStyle.UTILITY); 
     Label label = new Label(message); 

     // Set up the JavaFX button controls and listeners and the text fields 
     // for the login info. The button listeners set the login values 

     window.setScene(new Scene(root, 300, 175); 
     window.showAndWait(); 
     return login; 
    } 
} 

正如你可以看到,有()稱爲顯示,單一的靜態方法,它返回一個包含用戶登錄信息的字符串數組。只需按如下方式對此方法進行靜態調用即可。

String[] login = DialogBox.display("Login Dialog", "Enter User Name and Password"); 
0

您的答案是ControlsFX庫。 我已經發布here

該庫允許您從對話框中獲取返回值。最棒的是,您可以創建自己的自定義對話框。