《JAVA从入门到精通》(第三版)第十三章练习最后一题
尝试开发一个登陆窗体,包括用户名、密码以及提交按钮和重置按钮,当用户输入用户名mr、密码mrsoft时,弹出登陆成功提示对话框。
package com.swingtest;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
/**
* @author LycanYao
*
* 2018年3月23日
*/
public class Swingtest002 extends JFrame {
public Swingtest002() {
// 设置标题
setTitle("请登陆");
// 绝对布局
setLayout(null);
// 定义一个容器
Container c = getContentPane();
// 创建"用户名:"标签
JLabel jl1 = new JLabel("用户名:");
// 创建文本框
final JTextField jtf1 = new JTextField();
// 创建"密码:"标签
JLabel jl2 = new JLabel("密码:");
// 创建密码框
final JPasswordField jpf1 = new JPasswordField();
// 设置密码字符为*
jpf1.setEchoChar('*');
// 创建"提交"按钮
JButton jb1 = new JButton("提交");
// 创建"重置"按钮
JButton jb2 = new JButton("重置");
// 当用户名为"mr",密码为"mrsoft"时点击"提交"按钮弹出"登录成功"提示对话框
jb1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if ((jtf1.getText().trim().equals("mr") && new String(jpf1.getPassword()).trim().equals("mrsoft"))) {
JOptionPane.showMessageDialog(null, "登陆成功!");
} else if (jtf1.getText().trim().length() == 0 || new String(jpf1.getPassword()).trim().length() == 0) {
JOptionPane.showMessageDialog(null, "不能为空!");
} else {
JOptionPane.showMessageDialog(null, "错误");
// 清零
jtf1.setText("");
jpf1.setText("");
}
}
});
// 实现"重置"按钮功能
jb2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
jtf1.setText("");
jpf1.setText("");
}
});
// 将各组件添加到容器中
c.add(jl1);
c.add(jtf1);
c.add(jl2);
c.add(jpf1);
c.add(jb1);
c.add(jb2);
// 设置各组件的位置以及大小
jl1.setBounds(10, 20, 90, 30);
jtf1.setBounds(60, 20, 210, 30);
jl2.setBounds(25, 60, 90, 30);
jpf1.setBounds(60, 60, 210, 30);
jb1.setBounds(80, 100, 70, 50);
jb2.setBounds(150, 100, 70, 50);
// 设置窗体大小、关闭方式、不可拉伸
setSize(300, 220);
setVisible(true);
setResizable(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new Swingtest002();
}
}
运行结果为: