实际效果

介绍
使用的类
GridBagConstraints类
创建对象后可以通过调用访问成员属性来修改数值
再作为参数传入方法来指定类型的属性(宽高)


密码框JPasswordField
输入的内容是默认是隐藏的

重写actionPerformed方法
actionPerformed 方法是为了实现自定义的身份验证逻辑。通过重写这个方法,我们可以在用户点击登录按钮时执行我们自己的验证逻辑,而不仅仅是使用默认的行为。
在实际开发中,重写方法可以让我们根据具体需求来定制代码逻辑,使得程序更加灵活和符合特定的业务需求。这样做可以提高代码的可维护性和可扩展性,同时也有助于避免代码重复。
这边也提高了程序的可拓展性 我们可以接入双列集合中的用户名和密码

代码
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class LoginSystem extends JFrame implements ActionListener {
private JTextField usernameField;
private JPasswordField passwordField;
public LoginSystem() {
//初始化界面
setTitle("登录系统");
setSize(300, 150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//创建面板对象
JPanel panel = new JPanel(new GridBagLayout());
//GridBagConstraints是在图形化界面中控制组件大小和位置的
GridBagConstraints c = new GridBagConstraints();
//可以自定义组件的位置
c.insets = new Insets(5, 5, 5, 5);
//创建无图像且标题为空字符串JLabel
JLabel userLabel = new JLabel("用户名:");
c.gridx = 0;
c.gridy = 0;
panel.add(userLabel, c);
//创建文本框JTextField
usernameField = new JTextField(15);
c.gridx = 1;
c.gridy = 0;
panel.add(usernameField, c);
//创建无图像且标题为空字符串JLabel
JLabel passLabel = new JLabel("密码:");
c.gridx = 0;
c.gridy = 1;
panel.add(passLabel, c);
//创建密码框JPasswordField
passwordField = new JPasswordField(15);
c.gridx = 1;
c.gridy = 1;
panel.add(passwordField, c);
//创建按钮的对象
JButton loginButton = new JButton("登录");
loginButton.addActionListener(this);
c.gridx = 0;
c.gridy = 2;
c.gridwidth = 2;
c.anchor = GridBagConstraints.CENTER;
panel.add(loginButton, c);
//最后把面板添加进去
add(panel);
//可以将窗口设置到屏幕中央
setLocationRelativeTo(null);
//设置窗口可显示
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
String username = usernameField.getText();
String password = new String(passwordField.getPassword());
// 在这里可以添加验证逻辑,比如检查用户名和密码是否匹配
if (username.equals("Dduo") && password.equals("123")) {
JOptionPane.showMessageDialog(this, "登录成功");
} else {
JOptionPane.showMessageDialog(this, "登录失败,请重试");
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new LoginSystem());
}
}

京公网安备 11010502036488号