2

我用javafx创建了一个打开登录对话框的表单,在用户正确输入登录信息后,对话框关闭并且主表单加载了一些数据,我需要的是当登录对话框关闭时它会返回用户ID(登录)到主窗体,上面案例的代码是这样的:

主要形式

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

登录对话框表单

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

请提供任何帮助

4

2 回答 2

4

我建议的第一件事是创建自己的简单对话框。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;
    }
} 

如您所见,有一个名为 display() 的静态方法,它返回一个包含用户登录信息的字符串数组。只需按如下方式对该方法进行静态调用。

String[] login = DialogBox.display("Login Dialog", "Enter User Name and Password");
于 2017-07-21T20:40:00.730 回答
0

您的答案是 ControlsFX 库。我已经张贴 在这里

该库允许您从对话框中获取返回值。最棒的是,您可以创建自己的自定义对话框。

于 2014-03-11T08:14:17.700 回答