单击JButton后返回值为main,但JFrame消失

时间:2017-07-31 08:28:27

标签: java user-interface jframe jbutton

java和GUI的新手,所以我的代码可能不完美,但我试图让用户输入密码。如果它是正确的,我想将值1返回到main,如果不是,则将值0返回到main。

但是代码的这一部分,虽然它工作,但框架会自动消失,控件返回到主要返回默认值accessFlag = 0,程序将从那里继续。

我希望它等待用户输入,而不是出现和消失。

public int access(){

    JFrame frame=new JFrame("LOGIN");


    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    frame.setSize(510,100);
    JPanel panel=new JPanel(new MigLayout("", "[][][]", "[]"));
    frame.add(panel);
    JButton button=new JButton("Enter");
    JLabel label=new JLabel("Enter Password");
    JPasswordField pass=new JPasswordField(10);
    pass.setEchoChar('*');
    panel.add(label,"cell 0 0 1 1");
    panel.add(pass,"cell 1 0 1 1");
    panel.add(button,"cell 2 0 1 1");
    frame.setVisible(true);

    button.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            JPasswordField input=(JPasswordField) e.getSource();
            char[] passwordArray= input.getPassword();
            String passwordString= new String(passwordArray);

            if(passwordString.equals(password)){
                JOptionPane.showMessageDialog(null, "Correct!");
                accessFlag=1;
            }
            else{
                String notAllowed="Incorrect";
                JOptionPane.showMessageDialog(null, notAllowed);
                accessFlag=0;
            }
        }
    });

    return accessFlag;
}

0 个答案:

没有答案