最开始,我们要用import导入我们需要用的类和包
格式:import java.awt.类名;
import javax.swing.类名;
以下就是我们制作所需的类。
import java.awt.Color; //颜色
import java.awt.Dimension; //尺寸
import java.awt.FlowLayout; //流式布局器
import javax.swing.JCheckBox; //复选框
import javax.swing.JFrame; //窗体
import javax.swing.JButton; //按钮
import javax.swing.JLabel; //标签
import javax.swing.JTextField; //输入框
import javax.swing.JPasswordField;
import javax.swing.ImageIcon; //图片
接下来,我们开始写我们的页面内容
首先,创建对象的格式为:类名 对象名 = new 类名();
public class LoginUI {
public void ShowUI() { //创建一个登录页面类
JFrame loginFrame = new JFrame(); //创建一个窗体对象
//给窗体对象设置属性
loginFrame.setTitle("登陆界面");
loginFrame.setSize(400,400);//顶级容器设置大小
loginFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//进程关闭
loginFrame.setLocationRelativeTo(null);//居中显示
loginFrame.setResizable(true);//设置是否可以改变大小
//创建流式布局器对象
FlowLayout fl = new FlowLayout();
loginFrame.setLayout(fl);//设置布局
设置好窗体,我们来设置我们的组件,接下来分为三个步骤:
1.创建组件对象
JButton loginbtn = new JButton("登录");//按钮
JButton rbtn = new JButton("注册");
//图片 --需要标签 图片路径 + 图片名+ 图片格式
ImageIcon img = new ImageIcon("img/qq.png");
//标签
JLabel imgfla = new JLabel (img);
JLabel nameJla = new JLabel("账号");
JTextField nameField =new JTextField();//设置输入框
JLabel pwdJla = new JLabel("密码");
JPasswordField pwdField = new JPasswordField();
JCheckBox checkBox = new JCheckBox("忘记密码");//复选框
2.设置组件对象的属性
Dimension dim = new Dimension(330,30);// 尺寸
nameField.setPreferredSize(dim);//组件设置大小的方法
pwdField.setPreferredSize(dim);
//按钮颜色
loginbtn.setBackground(Color.WHITE);
rbtn.setBackground(Color.WHITE);
3.将组件加到窗体上
loginFrame.add(imgfla);
loginFrame.add(nameJla);
loginFrame.add(nameField);
loginFrame.add(pwdJla);
loginFrame.add(pwdField);
loginFrame.add(loginbtn);
loginFrame.add(rbtn);
loginFrame.add(checkBox);
写完窗体和组件之后最关键的一步就是
loginFrame.setVisible(true);//可视化
如果没有上面这一行代码,我们所写的窗体以及组件都不可视。
最后在方法里建立登陆界面的对象引用ShowUI方法就可以得到一个简单的登录界面了。
public static void main(String[]args){
LoginUI loginUI = new LoginUI();
loginUI.ShowUI();
}
}
类似的,注册界面也可用上面的步骤写得
代码为:
public void registerPerformed(){
JFrame registerFrame = new JFrame();//创建窗体对象
//给窗体对象设置属性
registerFrame.setTitle("注册界面");
registerFrame.setSize(400,400);
registerFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
registerFrame.setLocationRelativeTo(null);
registerFrame.setResizable(true);
FlowLayout fl = new FlowLayout();
registerFrame.setLayout(fl);
JLabel rnameJla = new JLabel("账号");
rnameField =new JTextField();
JLabel rpwdJla = new JLabel("密码");
rpwdField = new JPasswordField();
JButton rbtn = new JButton("点击注册");
Dimension rdim = new Dimension(330,30);
rnameField.setPreferredSize(rdim);
rpwdField.setPreferredSize(rdim);
rbtn.setBackground(Color.WHITE);
registerFrame.add(rnameJla);
registerFrame.add(rnameField);
registerFrame.add(rpwdJla);
registerFrame.add(rpwdField);
registerFrame.add(rbtn);
}
在登陆界面里我们有登录与注册的按钮,如果我们想要让它响应,就要用到接口。
首先,我们创建一个监听器类
这里,我们要接触到一个关键字implements,后加接口名
public class LoginUIListener implements ActionListener{
getActionCommand()用于获取用户点击的按钮的字符串
String btnstr = e.getActionCommand(); //得到当前点击按钮的字符串
接下来,我们要根据用户点击的按钮来给应相应的的动作
if(btnstr.equals("登录")){
//根据取到的登录账号密码 来与注册的账户密码比较
if(rName.equals(rnameField.getText())&&rpwd.equals(rpwdField.getText())){
System.out.println("完成登录");
}
else{
System.out.println("请重试!");
}
}
else if(btnstr.equals("注册")){
registerPerformed();//调用注册界面
}
// 根据输入框对象来取输入的字符串
else if(btnstr.equals("点击注册")){
rName = rnameField.getText();
rpwd = rpwdField.getText();
}
在此之前,我们要定义几个全局变量。
JTextField rnameField;
JTextField rpwdField;
JTextField nameField;
JTextField pwdField;
String rName;
String rpwd; // 声明两个空的输入框属性
最后,我们要在登陆界面建立动作监听器对象,来使按钮得到响应
// 监听器
// 先创建 一个实现了动作监听器接口的类 的对象
LoginUIListener loginListener = new LoginUIListener();
// 给按钮添加动作监听器
loginbtn.addActionListener(loginListener);
rbtn.addActionListener(loginListener);
// 输入框对象传递 -- 利用的监听器类的对象
loginListener.nameField = nameField;
loginListener.pwdField = pwdField;
这样,我们就可以得到一个简单的登陆,注册界面了