【发布时间】:2012-01-19 21:30:55
【问题描述】:
我有一个烦人的消息框,当我不想要它时会弹出它。 用户登录并且隐藏按钮可见后会出现问题,但是当单击它时会再次显示“正确”消息?我还尝试将它放在第一个语句和底部的顶部。 编辑:烦人的消息是成功登录后出现的消息,不,我不需要拼写检查,
class MyWindowListener extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.out.println("Closing window!");
System.exit(0);
}
}
class LoginForm extends JFrame implements ActionListener {
private final String username = "user";
private final String password = "pass";
JFrame frame;
JPanel jPanel;
JLabel userLabel;
final JTextField userText;
JLabel passLabel;
final JPasswordField passText;
JButton loginBtn;
JButton shopBtn;
JLabel welcome;
{
frame = new JFrame();
jPanel = new JPanel();
userLabel = new JLabel("Login : ");
userText = new JTextField(10);
passLabel = new JLabel("Password : ");
passText = new JPasswordField(10);
loginBtn = new JButton("Login");
shopBtn = new JButton("Go to Shop");
welcome = new JLabel("Welcome to ECSE501 Computers");
setTitle("Login Page");
loginBtn.addActionListener(this);
shopBtn.addActionListener(this);
Container c1 = new Container();
c1.setLayout(new GridLayout (3,2));
c1.add(userLabel);
c1.add(userText);
c1.add(passLabel);
c1.add(passText);
c1.add(loginBtn);
Container c2 = new Container();
c2.setLayout(new BoxLayout(c2, BoxLayout.Y_AXIS));
c2.add(welcome);
c2.add(shopBtn);
welcome.setVisible(false);
shopBtn.setVisible(false);
add(jPanel);
jPanel.add(c1);
jPanel.add(c2);
}
public void actionPerformed(ActionEvent e) {
String userInput = userText.getText();
char[] pass = passText.getPassword();
String p = new String(pass);
if (userInput.equals(username) && p.equals(password)) {
jPanel.setVisible(true);
welcome.setVisible(true);
jPanel.setBackground(Color.green);
JOptionPane.showMessageDialog(null, "Correct");
shopBtn.setVisible(true);
JButton hiddenBtn = (JButton) e.getSource();
if ( hiddenBtn == shopBtn)
{
SelectionForm selection = new SelectionForm();
selection.select();
}
}
else {
jPanel.setBackground(Color.red);
JOptionPane.showMessageDialog(null, "Wrong Login Details");
}
}
}
public class LoginTester {
public static void main(String[] args) {
// register an event handler for frame events
LoginForm frame = new LoginForm();
frame.addWindowListener(new MyWindowListener());
frame.setSize(300, 200);
frame.setVisible(true);
//frame.pack();
}
}
【问题讨论】:
-
您能否提供完整的程序,您似乎在循环调用此功能! (作为主要部分)
-
1) 为了尽快获得更好的帮助,请发帖 SSCCE。 2)
"Corerect"不正确。使用拼写检查器。 3) “恼人的消息”的确切文本是什么? -
"Corerect"?如果这突然出现在我身上,我会很生气。抱歉,无法抗拒讽刺。
标签: java swing actionlistener