用户界面
今天学用户界面的实现,除了界面的设置之外,对用户界面进行了深一层的设置。能够实现简单的验证与重置。
代码如下
package 用户界面;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class 登陆窗口 extends JFrame implements ActionListener{
//属性--用户名、密码、按钮
JTextField jf_name;
JPasswordField jf_pass;;
JButton jb_login;
JButton jb_reset;
String name = "hunter";
String pass = "123456";
public 登陆窗口(){
initUI();
initListener();
}
public void initUI(){
//布局
this.setLayout(new GridLayout(4,1));
//第一行
JLabel jl = new JLabel("用户登陆");//创建“用户登陆”文本
jl.setFont(new Font("宋体", Font.BOLD, 20));//设置字体,格式,大小
JPanel jp1 = new JPanel();//中间容器1
jp1.add(jl);//添加文本--用户登陆
this.add(jp1);//将中间容器1添加至窗口
//第二行
JLabel jl_name = new JLabel("用户名");//创建“用户名”文本
jf_name = new JTextField(20);//用户名文本框
JPanel jp2 = new JPanel();//中间容器2
jp2.add(jl_name);//添加“用户名”文本
jp2.add(jf_name);//添加用户名文本框
this.add(jp2);//将中间容器2加到窗口中
//第三行
JLabel jl_pass = new JLabel("密码 ");//创建“密码”文本
jf_pass = new JPasswordField(20);//密码文本框
JPanel jp3 = new JPanel();//中间容器3
jp3.add(jl_pass);//添加“密码”文本
jp3.add(jf_pass);//添加密码文本框
this.add(jp3);//将中间容器3添加至窗口
//第四行
jb_login = new JButton("登陆");//创建“登陆”按钮
jb_reset = new JButton("重置");//创建“重置”按钮
JPanel jp4 = new JPanel(); //创建中间容器4
jp4.setLayout(new FlowLayout(FlowLayout.CENTER,30,0));//中间容器4布局位流布局--中间
jp4.add(jb_login);//添加“登陆”按钮
jp4.add(jb_reset);//添加“重置”按钮
this.add(jp4);//将中间容器4添加至窗口
//显示设置
this.setSize(400, 200);//窗口大小
this.setTitle("用户登录");//窗体名称
this.setVisible(true);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void initListener() {//绑定监听器
jb_login.addActionListener(this);//
jb_reset.addActionListener(this);//
}
public static void main(String[] args) {
new 登陆窗口();
}
@Override
public void actionPerformed(ActionEvent e) {
JButton jbInput = (JButton) e.getSource();
if(jbInput.equals(jb_reset)) {//判断事件是否为重置
jf_name.setText(null);
jf_pass.setText(null);
}else if(jbInput.equals(jb_login)) {//判断事件是否为登陆
String Input_name = jf_name.getText();
String input_pass = jf_pass.getText();
if(Input_name.equals(name) && input_pass.equals(pass)){//判断用户名与密码是否相等
System.out.println("登陆成功");
}else {
System.out.println("登陆失败");
}
}
}
}
不过,对于 JButton jbInput = (JButton) e.getSource();这一行代码不是很理解。求深度解释~