Java:处理Gui表单

时间:2019-02-26 08:17:14

标签: java swing intellij-idea

我正在使用IntelliJ制作GUI,并且选择了选项New-> Gui Form。我已经将其设置为登录屏幕,但是无法在成功登录时丢弃该窗口。我尝试使用extends JFrame扩展类,然后调用dispose(),但它似乎没有用。我该怎么办?

预先,谢谢。

代码更新:

public LoginFrame() {
    loginButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {

            char[] pass = password.getPassword();
            StringBuilder passwordBuilder = new StringBuilder();

            for (char p : pass)
            {
                passwordBuilder.append(p);
            }

            String password = passwordBuilder.toString();

            //Login.
            if(DatabaseHandler.login(username.getText(), password))
            {
                dispose(); //THIS WINDOW.
            }

            else
            {
                JOptionPane.showMessageDialog( null, "Wrong username or password!", "Login failed!", JOptionPane.ERROR_MESSAGE);
            }


        }
    });
}

2 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

        if(DatabaseHandler.login(username.getText(), password))
        {
            Component button = (Component) e.getSource();
            SwingUtilities.getWindowAncestor(button).dispose();
        }

如果无济于事,请提供一个MCVE,以便我们了解您的代码中有什么问题。

答案 1 :(得分:0)

如果您有扩展JFrame的类,请按照以下说明使用您的类名来处置JFrame

windowClassName.super.dispose();