基础知识
工具
一、AWT
java.awt包提供了创建界面和绘制图形图像的所有类。它里面存有各种元素:尺寸、颜色、布局等,用来设计各种模块的属性。
我们利用这些元素来给swing里的各种组件赋予属性。
Abstract Windows Toolkit(AWT)是最原始的 Java GUI(Graphical User Interface=图形用户界面) 工具包。
AWT 的主要优点是,它在 Java 技术的每个版本上都成为了一种标准配置,
包括早期的 Web 浏览器中的 Java 实现;
另外它也非常稳定。这意味着我们不需要单独安装这个工具包,
在任何一个 Java 运行环境中都可以使用它,这一点正是我们所希望的特性。
所用到的类
1.布局管理器:
流式布局器 FLowLayout
默认居中,向流水一样把各个模块从左到右(自动换行)排列下来
2.尺寸
尺寸 Dimension
本次设计用来控制文字输入框的长宽。
二、swing
javax.swing包提供了一组“轻量级”的组件,尽量让这些组件在所有平台上的工作方式相同。为解决 AWT 存在的问题而新开发的图形界面包。Swing是对AWT的改良和扩展。
Swing是一个为Java设计的GUI工具包。
Swing是Java基础类的一部分。
Swing包括了图形用户界面(GUI)组件如:文本框,文本域,按钮,分隔窗格和表。
所用到的类
- 顶级容器 JFrame
- 图片 ImageIcon
- 标签 JLabel
- 输入框 JTextfield
- 复选框 JCheckBox
- 按钮 JButton
三、监听
基础知识
引用自 监听器入门看这篇就够了
解释
监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。
组件
事件源、事件对象、事件监听器
当事件源发生某个动作的时候,
它会调用事件监听器的方法,
并在调用事件监听器方法的时候把事件对象传递进去。
我们在监听器中就可以通过事件对象获取得到事件源,
从而对事件源进行操作!
本次用一个拓展ActionListener接口的类Login_Listener来作为登录按钮是否被点击的监听器
操作
构建一个类Login_Listener来监听登录按钮是否被点击
Login_Listener类:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class Login_Listener implements ActionListener {
/*
jtx为名字输入框
jpwd为密码输入框
*/
JTextField jtx;
JPasswordField jpwd;
//响应事件e
public void actionPerformed(ActionEvent e) {
if(jtx.getText().equals("name")&&jpwd.getText().equals("mima")) {
System.out.println("登录成功");
}
else {
System.out.println("登录失败");
}
}
}
在主函数(登录界面)中的应用
//实例化 (实现了ActionListener接口的)类Login_Listener的对象
Login_Listener ll= new Login_Listener();
//把 监听器 ll 加入到 登录按钮 button 中
button.addActionListener(ll);
//传参
ll.jtx=inputname;
ll.jpwd=input_pwd;
实现
登录界面:
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class Login_UI {
//主方法
public static void main(String []args) {
Login_UI lU = new Login_UI();
lU.showUI();
}
public void showUI() {
//顶级容器
JFrame jf=new JFrame("仿QQ登录界面");
//尺寸
jf.setSize(400,400);
//设置退出功能
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//布局器:流式
FlowLayout fl =new FlowLayout();
//设置顶级容器jf加入布局器fl
jf.setLayout(fl);
//设置jf的属性
//窗体不可改变
jf.setResizable(false);
//居中
jf.setLocationRelativeTo(null);
//图片
ImageIcon image= new ImageIcon("D:\\cc\\图\\壁纸\\default.png");
JLabel imagelable =new JLabel(image);
//文字标签
JLabel name =new JLabel("账号:");
JLabel pwd = new JLabel("密码:");
//输入框
//尺寸
Dimension inputdim = new Dimension(320,30);
JTextField inputname = new JTextField();
inputname.setPreferredSize(inputdim);
JPasswordField input_pwd = new JPasswordField();
input_pwd.setPreferredSize(inputdim);
//按钮
JButton button = new JButton("登录");
//添加组件
jf.add(imagelable);
jf.add(name);
jf.add(inputname);
jf.add(pwd);
jf.add(input_pwd);
jf.add(button);
//可以显示
jf.setVisible(true);
//实例化 (实现了ActionListener接口的)类Login_Listener的对象
Login_Listener ll= new Login_Listener();
//把 监听器 ll 加入到 登录按钮 button 中
button.addActionListener(ll);
//传参
ll.jtx=inputname;
ll.jpwd=input_pwd;
}
}
监听的类如前面所示
验证