一、界面组成
1.可视化部分 :窗体 按钮 输入框 标签等
2.元素规则部分: 尺寸 颜色 字体 布局等
3.内容部分: 文本 图片等
二、JAVA源码包
在界面的开发过程中,我们需要用到两个Java源码包分别是:java.awt 和 javax.swing
注解:在一个类中使用其他包中的类时(自己创建的其他包 源码包),都需要导入这个类所在的 包路径
格式为:
import 包名.*;
import 包名.类名;
例如:
import java.awt.*;
import javax.swing.*;
java.awt:
FlowLayout : 流式布局类 管理窗体内的组件摆放位置
Dimension : 尺寸
Color : 颜色
Font : 字体
javax.swing:
JFrame : 窗体类
JLabel : 标签 加载图片和文本 ,透明的组件 只会显示内容
JButton : 按钮类
JTextField: 单行文本输入框
JPasswordField: 密码输入框(输入的文本会用 · 代替)
ImageIcon: 图标类
JCheckBox:多选框
JRadioButton:单选框(需定义一个按钮组,如:
ButtonGroup btnG = new ButtonGroup();// 按钮组
// 单选框 只能选中一个
JRadioButton userRbtn = new JRadioButton("用户");
JRadioButton vipRbtn = new JRadioButton("VIP用户");
JRadioButton adminRbtn = new JRadioButton("管理员");
btnG.add(userRbtn);
btnG.add(vipRbtn);
btnG.add(adminRbtn);
jf.add(userRbtn);
jf.add(vipRbtn);
jf.add(adminRbtn);
)
三、开发步骤
1.搭建代码运行的框架:
(1)创建一个类 如:LoginUI;
(2)创建一个方法 如:showUI;
(3)创建一个程序入口 创建LoginUI对象调用showUI方法;
2.界面开发:
(1)导入开发包 java.awt javax.swing
(2)创建一个窗体类对象 设置属性:(标题 尺寸 关闭方式 位置 可视化)
(3)创建窗体需要的小组件对象: (按钮 输入框 标签)
代码如下:
package HXK1118;
import java.awt.*;
import javax.swing.*;
public class LoginUI {
public void shouUI(){
JFrame jf=new JFrame();
jf.setTitle("登录界面");
jf.setSize(290,400);
jf.setLocation(500,200);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setLayout(new FlowLayout());
ImageIcon icon=new ImageIcon("C:\\Users\\DELL\\Desktop\\QQ.jpg");
jf.setIconImage(icon.getImage());
ImageIcon icon1=new ImageIcon("C:\\Users\\DELL\\Desktop\\11.png");
JLabel iconjla=new JLabel(icon1);
jf.add(iconjla);
JLabel nameJla = new JLabel("账号:");
jf.add(nameJla);
JTextField nameJtf = new JTextField();
jf.add(nameJtf);
JLabel pwdJla = new JLabel("密码:");
jf.add(pwdJla);
JPasswordField pwdJtf = new JPasswordField();
jf.add(pwdJtf);
JCheckBox rmCheckbox=new JCheckBox("记住密码");
JCheckBox autoLoginBox = new JCheckBox("自动登录");
jf.add(rmCheckbox);
jf.add(autoLoginBox);
ButtonGroup btnG = new ButtonGroup();
JRadioButton userRbtn = new JRadioButton("用户");
JRadioButton vipRbtn = new JRadioButton("VIP用户");
JRadioButton adminRbtn = new JRadioButton("管理员");
btnG.add(userRbtn);
btnG.add(vipRbtn);
btnG.add(adminRbtn);
jf.add(userRbtn);
jf.add(vipRbtn);
jf.add(adminRbtn);
adminRbtn.setSelected(true);
Dimension dim = new Dimension(210, 30);
nameJtf.setPreferredSize(dim);
pwdJtf.setPreferredSize(dim);
Dimension dim1=new Dimension(120,30);
rmCheckbox.setPreferredSize(dim1);
autoLoginBox.setPreferredSize(dim1);
JButton btn = new JButton("登录");
jf.add(btn);
JButton btn2 = new JButton("注册");
jf.add(btn2);
jf.setVisible(true);
}
public static void main(String[] args) {
LoginUI loginui=new LoginUI();
loginui.shouUI();
}
}
运行结果:
四、动作监听器
在登录界面,我们会有需要注册账号的情况,这样就需要我们使用动作监听器, 完成按钮的注册监听后 ,点击此按钮 就会调用loginAction的actionPerformed()方法
使用步骤:
(1) 创建一个新的类 LoginAction
(2) 这个类实现 ActionListener implements
具体如下:
将一下代码加入到我们前面编写的LoginUI中,可以将初始化表单,将LoginUI中的表单对象都传给监听器
loginAction.setForm(nameJtf, pwdJtf,
rmCheckbox, autoLoginBox,
userRbtn, adminRbtn, vipRbtn);
我们再添加一个类实现 ActionListener implements
package HXK1118;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class LoginAction implements ActionListener {
JTextField nameJtf2;
JPasswordField pwdJtf2;
JCheckBox rmBox2;
JCheckBox atlBox2;
JRadioButton userRbtn2;
JRadioButton adminRbtn2;
JRadioButton vipRtn2;
public void setForm(JTextField nameJtf2, JPasswordField pwdJtf2, JCheckBox rmBox2,
JCheckBox atlBox2, JRadioButton userRbtn2, JRadioButton adminRbtn2,
JRadioButton vipRtn2){
this.nameJtf2 = nameJtf2;
this.pwdJtf2 = pwdJtf2;
this.rmBox2 = rmBox2;
this.atlBox2 = atlBox2;
this.userRbtn2 = userRbtn2;
this.adminRbtn2 = adminRbtn2;
this.vipRtn2 = vipRtn2;
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("点击了按钮");
System.out.println("登录相关数据:");
System.out.println("账号:" + nameJtf2.getText());
System.out.println("密码:" + pwdJtf2.getText());
System.out.println("自动登录:" + atlBox2.isSelected());
System.out.println("记住密码:" + rmBox2.isSelected());
boolean vip = vipRtn2.isSelected();
boolean admin = adminRbtn2.isSelected();
boolean user = userRbtn2.isSelected();
String userType = "";
if (vip) {
userType = "VIP用户";
} else if (user) {
userType = "普通用户";
} else {
userType = "管理员";
}
System.out.println("登录的用户类型:" + userType);
}
}
运行结果:
点击了按钮
登录相关数据:
账号:
密码:
自动登录:false
记住密码:false
登录的用户类型:VIP用户