ADD file via upload

main
p46nuwtki 3 months ago
parent 2a34ab1309
commit f023ed321a

@ -0,0 +1,163 @@
package view.gui;
import ctrl.LoginCtrl;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* @author Nisiyu
* @version 1.0
* @created 21-11-2025 8:14:26
* 2023210480
*/
public class LoginGui extends JFrame {
private JTextField cid;
private JPasswordField cpwd;
private LoginCtrl loginCtrl;
private JButton submitBtn;
public LoginCtrl m_LoginCtrl;
private JLabel resultLabel;
public LoginGui() {
this.loginCtrl = new LoginCtrl();
initComponents();
setupLayout();
setupListeners();
}
public void finalize() throws Throwable {
// 清理资源
}
/**
*
*/
public void initComponents() {
// 设置窗口属性
setTitle("ATM登录系统 - 学号2023210480");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 300);
setLocationRelativeTo(null); // 居中显示
// 初始化组件
cid = new JTextField(15);
cpwd = new JPasswordField(15);
submitBtn = new JButton("登录");
resultLabel = new JLabel("请输入账号和密码");
// 设置密码字段的回显字符
cpwd.setEchoChar('*');
}
/**
*
*/
private void setupLayout() {
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(5, 5, 5, 5);
gbc.fill = GridBagConstraints.HORIZONTAL;
// 账号标签和输入框
gbc.gridx = 0;
gbc.gridy = 0;
add(new JLabel("账号:"), gbc);
gbc.gridx = 1;
gbc.gridy = 0;
add(cid, gbc);
// 密码标签和输入框
gbc.gridx = 0;
gbc.gridy = 1;
add(new JLabel("密码:"), gbc);
gbc.gridx = 1;
gbc.gridy = 1;
add(cpwd, gbc);
// 登录按钮
gbc.gridx = 0;
gbc.gridy = 2;
gbc.gridwidth = 2;
gbc.fill = GridBagConstraints.NONE;
add(submitBtn, gbc);
// 结果显示标签
gbc.gridx = 0;
gbc.gridy = 3;
gbc.gridwidth = 2;
add(resultLabel, gbc);
}
/**
*
*/
private void setupListeners() {
submitBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
handleLogin();
}
});
// 回车键登录
cpwd.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
handleLogin();
}
});
}
/**
*
*/
private void handleLogin() {
String account = cid.getText().trim();
String password = new String(cpwd.getPassword()).trim();
if (account.isEmpty() || password.isEmpty()) {
resultLabel.setText("账号和密码不能为空!");
resultLabel.setForeground(Color.RED);
return;
}
// 调用控制器进行登录验证
boolean loginSuccess = loginCtrl.validateLogin(account, password);
if (loginSuccess) {
resultLabel.setText("登录成功欢迎使用ATM系统");
resultLabel.setForeground(Color.GREEN);
// 这里可以跳转到主界面
} else {
resultLabel.setText("登录失败!请检查账号和密码");
resultLabel.setForeground(Color.RED);
}
// 清空密码框
cpwd.setText("");
}
/**
*
*/
public void showGui() {
setVisible(true);
}
/**
*
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new LoginGui().showGui();
}
});
}
}//end LoginGui
Loading…
Cancel
Save