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