0

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);
            }
        }
    }
}
4

1 に答える 1

2

変えるだけ

public void Login()

public Login()

Loginメソッドではなく、コンストラクタです。

于 2013-05-21T13:04:00.523 に答える