我将JLabel设置为按钮,它为我的应用程序运行登录逻辑。
如果用户输入无效,则JOptionPane弹出窗口会显示“Invalid Credentials”消息,并且不会发生任何其他情况。
如果登录成功,按钮会更改颜色(新ImageIcon),用户名和密码字段将被清除,系统会调用与用户个人资料相关联的面板(CardLayout)。
用户登录后,我希望能够单击相同的JLabel并注销系统。图标会变回原来的状态(第一个ImageIcon)并删除所有卡片。
我接近于获得此行为,但是当我点击退出时,我也会收到“Invalid Credentials”消息。如何执行注销逻辑并停止系统再次运行登录逻辑?我尝试了一个jToggleButton,但我得到了同样的行为。
以下是我的代码的一部分:
if (userAccount == null) {
JOptionPane.showMessageDialog(null, "Invalid Credentials!");
} else{
CardLayout layout = (CardLayout) container.getLayout();
container.add("workArea", userAccount.getRole().createWorkArea(container, userAccount,inOrganization, inEnterprise, system));
layout.next(container);
ImageIcon img = new ImageIcon(getClass().getResource("loginBlue.jpg"));
loginButton.setIcon(img);
userNameJTextField.setText("");
passwordField.setText("");
loginButton.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e){
loginButton.setIcon(image);
container.removeAll();
}
});
}