Java页面编辑(添加监听器)
上个博客我们讲了如何编写一个简易的界面
网址链接
这次我们完善一下这个界面,给这个界面加上判断密码是否正确的功能。
首先,将窗体编辑好,并新建一个类作为它的监听器。
public class LoginUI {
// 设置初始化登陆界面
public void initUI(){
//创建窗体
//设置窗体属性
JFrame loginFrame=new JFrame();
loginFrame.setTitle("微信登录入口:"); //设置标题内容
loginFrame.setSize(400,500); //设置尺寸
loginFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭按钮设置
//流式布局
FlowLayout fl = new FlowLayout();
loginFrame.setLayout(fl); //流式布局设置给窗体
//创建组件对象
//图片
ImageIcon img = new ImageIcon("C:\\Users\\Lenovo\\Desktop\\JAVA学习\\2020.0605\\wechat.jpg");
//标签,放图片
JLabel imgJLa = new JLabel(img);
//标签,其他文字
JLabel nameJLa = new JLabel("账号:");
JLabel passwordJLa = new JLabel("密码:");
//按钮
JButton loginbtn = new JButton("登录");
JButton rbtn = new JButton("注册");
//输入框
JTextField nameField = new JTextField();
JPasswordField passwordField= new JPasswordField();
//复选框
JCheckBox reBox1= new JCheckBox("记住密码");
JCheckBox reBox2=new JCheckBox("自动登录");
//按钮属性
Color color=new Color(55,174,181);
loginbtn.setBackground(color); //颜色
Dimension btndim= new Dimension(150,30);
loginbtn.setPreferredSize(btndim); //尺寸
//输入框属性
Dimension fielddim= new Dimension(320,30);
nameField.setPreferredSize(fielddim);
passwordField.setPreferredSize(fielddim);
//把组件放到窗体上
loginFrame.add(rbtn);
loginFrame.add(imgJLa);
loginFrame.add(nameJLa);
loginFrame.add(nameField);
loginFrame.add(passwordJLa);
loginFrame.add(passwordField);
loginFrame.add(reBox1);
loginFrame.add(reBox2);
loginFrame.add(loginbtn);
loginFrame.setVisible(true);// 使窗体可视化
// 实例化 实现了监听器接口的类的 对象
LoginListener loginListener= new LoginListener();
// 按钮加载监听
loginbtn.addActionListener(loginListener);
rbtn.addActionListener(loginListener);
// 传递输入框对象地址
loginListener.nameField=nameField;
loginListener.passwordField=passwordField;
}
public static void main(String[] args) {
LoginUI loginUI = new LoginUI();
loginUI.initUI();
}
}
我们可以发现,除了上一篇讲的内容之外,还加了以下一段:
// 实例化 实现了监听器接口的类的 对象
LoginListener loginListener= new LoginListener();
// 按钮加载监听
loginbtn.addActionListener(loginListener);
rbtn.addActionListener(loginListener);
// 传递输入框对象地址
loginListener.nameField=nameField;
loginListener.passwordField=passwordField;
这段话的作用是什么呢,我们接下来会讲到。
我们新建一个类,命名为LoginListener,将第一句编写改为
public class LoginListener implements ActionListener{
即加上了动作监听器。加上动作监听器就可以判断我们的动作了。
接下来加入语句
JTextField nameField;
JPasswordField passwordField;
用来指向传递。
最开始的ActionListener属于java.awt.event.ActionEvent包,然后就可以调出语句
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
在此语句下编写动作判断语句
String btnString=e.getActionCommand();
我们先看一下监听器整体的代码:
public class LoginListener implements ActionListener{
//用来指向传递
JTextField nameField;
JPasswordField passwordField;
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String btnString=e.getActionCommand();
//点击登录
if (btnString.equals("登录")) {
System.out.println("登录");
//验证密码
String nameStr = nameField.getText();
String passwordStr = passwordField.getText();
//判断账号密码是否正确
if (nameStr.equals("xxxxxx") && passwordStr.equals("123456")) {
System.err.println("账号密码验证成功!登录成功");
}else {
System.err.println("账号密码验证失败! 请重新输入");
}
} else if (btnString.equals("注册")) {
System.out.println("注册");
}}}
在窗体编辑的界面我们已经给按钮加上了动作监听器,给输入框加上了地址。在监听器相应的界面需要添加相应语句。
登录按钮和注册按钮判断为
//点击登录
if (btnString.equals("登录")) {
System.out.println("登录");
} else if (btnString.equals("注册")) {
System.out.println("注册");
}
即点击登录按钮之后会输出登录语句。
然后是密码是否输入正确的判断,步骤是先获取输入框内的字符串内容,再判断是否符合
//验证密码
String nameStr = nameField.getText();
String passwordStr = passwordField.getText();
//判断账号密码是否正确
if (nameStr.equals("xxxxxx") && passwordStr.equals("123456")) {
System.err.println("账号密码验证成功!登录成功");
}else {
System.err.println("账号密码验证失败! 请重新输入");
}
效果如图
如此就编写完了。