java - 包装类里面的JDialog不出现

标签 java swing jdialog

我有一个登录表单,它是 JDialog 类的实例。但它不会出现在 JFrame 内。我之前在 Application 中将其作为一种方法实现,并且它有效。但将其包装在 Login 类中后,它不起作用,也没有任何错误。有什么问题吗?

public class Application extends JFrame {
    JDialog loginForm = null;
    public Application() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setExtendedState(JFrame.MAXIMIZED_BOTH);
        setMinimumSize(new Dimension(800, 400));
        setVisible(true);
        loginForm = (JDialog) new Login();
    }

    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel("com.alee.laf.WebLookAndFeel");
            WebLookAndFeel.setDecorateDialogs(true);
        } catch (Exception e) {

        }
        Application app = new Application();
    }
}


public class Login extends JDialog {
    private JButton loginButton = null;
    private JButton cancelButton = null;
    private JTextField userNameField = null;
    private JPasswordField userPassField = null;

    public void Login() {
        //...
        //...

        setSize(new Dimension(300, 200));
        setResizable(false);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
        setTitle("Login");
        setVisible(true);
        setAlwaysOnTop(true);
    }

    class EventHandler implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            if (e.getSource() == loginButton) {
                String username = userNameField.getText();
                String password = Security.getSha256(userPassField.getText());
                if(User.login(username, password)) {
                    // Login Successful
                } else {
                    // Login Failed. Alert error
                }
            } else if(e.getSource() == cancelButton) {
                System.exit(0);
            }
        }
    }
}

最佳答案

改变一下

public void Login()

public Login()

Login 不是一个方法,它是一个构造函数。

关于java - 包装类里面的JDialog不出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16670530/

相关文章:

java - 将 Assets 文件夹中的自定义 gif 加载到 recyclerview android

java - OutOfMemoryError Java 堆空间

java - GridBagLayout 问题 : TextArea overlapping MenuBar

java - 如何去掉顶部标题

java - Spring Boot 在 Controller 内执行并行方法

java - 更新到 Hibernate 5 后无法访问 TransactionManager 或 UserTransaction

java - 从结果列表构建 Java TableModel

java - .net 相当于 Java 的 Swing TableModel?

java - JDialog标题的字体大小

java - 异常: adding a window to a container.如何解决?