今天教大家一个简单的GUI图形设计,我们来做一个登录窗口
首先使用IDEA创建一个项目
src目录下创建窗口运行文件Login.java
public class Login {
public static void main(String[] args) {
new LoginWin();
}
}
接着新建窗口类LoginWin();
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class LoginWin extends JFrame{
private static final long serialVersionUID = -1314520L;
public LoginWin(){
setTitle("系统登录"); //窗口标题
setSize(400,300); //窗口大小
setLocation(660,320); //窗口位置
setResizable(false); //窗口大小不可改变
setLocationRelativeTo(null); //窗口居中
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //设置关闭方式
Container container = getContentPane(); //添加一个容器
container.setLayout(null); //设置布局管理器为null
JLabel username = new JLabel("用户名:"); //生成 name 标签
JLabel pw = new JLabel("密 码:"); //生成 password 标签
JTextField name = new JTextField(30); //name 输入框
JPasswordField password = new JPasswordField(30); //password 输入框
JButton login = new JButton("登陆"); //登陆 按钮
JButton reset = new JButton("重置"); //重置 按钮
/*
* 设置模块的位置和大小
*/
username.setBounds(60, 50, 120, 30);
name.setBounds(120, 50, 180, 30);
pw.setBounds(60, 100, 120, 30);
password.setBounds(120, 100, 180, 30);
login.setBounds(100, 180, 70, 30);
reset.setBounds(220, 180, 70, 30);
container.add(username);
container.add(name);
container.add(pw);
container.add(password);
container.add(login);
container.add(reset);
/*
* 给 登陆 按钮添加 动作事件
*/
login.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(name.getText().trim().length() == 0 || new String(password.getPassword()).trim().length() == 0) {
JOptionPane.showMessageDialog(null, "用户名,密码不能为空"); //显示对话框
return;
}
if(name.getText().equals("admin") && new String(password.getPassword()).equals("lvhongming")) {
JOptionPane.showMessageDialog(null, "登陆成功");
return;
} else {
JOptionPane.showMessageDialog(null, "用户名或密码不正确");
return;
}
}
});
/*
* 给 重置 按钮添加动作事件
*/
reset.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
name.setText("");
password.setText("");
}
});
//输出窗口
this.setVisible(true);
}
}
运行测试: