前两个博客介绍了一下Java中的类与对象,以及界面设计,这篇博客就结合这两个知识点来说说如何设计一个简单的登录界面。
第一步 创建窗体对象
JFrame loginFrame = new JFrame();
loginFrame.setTitle("登录");
loginFrame.setSize(400, 400);
loginFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时退出程序
loginFrame.setLocationRelativeTo(null);//居中显示
//流式布局
FlowLayout fl = new FlowLayout();
loginFrame.setLayout(fl);
第二步 创建组件对象
//创建组件对象
//图片
ImageIcon img = new ImageIcon("src/image/1.png");
JLabel imgjla = new JLabel(img);
//按钮
JButton btn = new JButton("登录");
JButton rgbtn = new JButton("注册");
//标签
JLabel namejla = new JLabel("账号");
JLabel pwdjla = new JLabel("密码");
//输入框
JTextField nameField = new JTextField();
JPasswordField pwdField = new JPasswordField();
//复选框
JCheckBox rmbox = new JCheckBox("记住密码");
//设置组件对象的属性
Dimension indim = new Dimension(330,30);
nameField.setPreferredSize(indim);
pwdField.setPreferredSize(indim);
//添加组件对象到容器上
loginFrame.add(imgjla);
loginFrame.add(namejla);
loginFrame.add(nameField);
loginFrame.add(pwdjla);
loginFrame.add(pwdField);
loginFrame.add(btn);
loginFrame.add(rgbtn);
loginFrame.add(rmbox);
loginFrame.setVisible(true);
现在基本的页面已经设计好了,运行一下,看一下效果
![](https://i-blog.csdnimg.cn/blog_migrate/1536bf387920523e6905e74218423f96.png)
第三步 添加事件监听器
监听器用来监听对象的创建、销毁、增加,修改,删除等动作的发生,当监听范围的对象的状态发生变化的时候,就会自动调用监听器对象中的方法,作出相应的响应处理。
监听方式有两种形式,类内监听和类外监听
//类内监听,在主类中进行监听
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand();
if(str.equals("登录")) {
System.out.println("点击了登录!");
}
}
});
//类外监听,在主类外创建监听类
public class LoginListener implements ActionListener{
JTextField nameField;
JPasswordField pwdField;
List<String> namelist=new ArrayList<>();
List<String> pwdlist=new ArrayList<>();
boolean flag = false;
public void actionPerformed(ActionEvent e) {
String btnstr = e.getActionCommand();
String namestr = nameField.getText();
String pwdstr = pwdField.getText();
namelist.add("admin");
pwdlist.add("admin");
if(btnstr.equals("登录")) {
for(int i = 0 ; i < namelist.size() ; i++) {
if(namestr.equals(namelist.get(i))&&pwdstr.equals(pwdlist.get(i))) {
flag = true;
}
}
if(flag==true) {
System.out.println("账号密码正确! 登录成功!");
}else {
System.out.println("账号密码错误! 登录失败!");
}
}
else if(btnstr.equals("注册")){
namelist.add(namestr);
pwdlist.add(pwdstr);
System.out.println(namestr+"注册成功!");
}
}
}
//在主类中传入监听类
LoginListener loginlistener = new LoginListener();
btn.addActionListener(loginlistener);
rgbtn.addActionListener(loginlistener);
loginlistener.nameField = nameField;
loginlistener.pwdField = pwdField;
这样一个简单的登录页面就设计好啦,后续有时间的话,我会在登录的基础上,设计更多功能。