掌握了类和继承的有关知识,接下来看看这个。
一、图形界面
1.Java图形界面组件
1.awt组件
awt组件是位于java.awt包下的类,属于重量级组件,必须要依赖于操作系统的绘图机制来实现。
2.swing组件
swing组件是位于javax.swing包下的类,轻量级组件。
2.常用的组件类
1.容器组件类:表示组件上可以添加其他的容器组件或者元素组件
JFrame窗体容器组件类顶级容器
2.元素组件类:表示只是用来显示文字、图片或者接受键盘鼠标输入的组件。
所有的元素组件类都可以使用setPreferredSize()方法来设置大小。
JLabel标签元素组件类用来显示文字或者图片
JTextField文本输入框元素组件类用来接收用户的输入,直接显示出来。
JPasswordField 密码输入框元素组件类用来接收用户的输入,以某个符号代替显示。
JCheckBox复选框元素组件类提供一个选择框,可以显示文字或者图片。
JButton 按钮元素组件类用来显示文字或者图片,点击在按钮上回有相应的效果。
上述的容器组件类和元素组件类都是属于SWING组件。使用的时候必须要加上包名javax.swing.Frame
使用AWT的组件,只需要将SWING组件的类名少一个字母J。例如:JFrame-->Frame
使用AWT组件要必须加上包名java.awt.Frame
3.辅助类:帮助组件完成某一个功能的类
java.awt.FlowLayout 流式布局类布局类都是针对容器组件的; 流式布局会将容器上所添加组件设置左对齐、右对齐或者居中对齐,然后能设置组件与组件的距离
java.awt.Dimension 封装组件宽高类
javax.swing.ImageIcon 图标类加载磁盘上的图片文件到程序中。
二、接口
定义这样一个类,类中所有的方法只有方法的定义,没有方法体,这个类就叫接口。
1. 定义接口的关键字:interface
2.定义接口的格式:
public interface 接口名 extends 接口,... {
//定义常量,默认的是public static final
public static final 数据类型 常量名 = 值;
//定义抽象方法, 默认的是public abstract
public abstract 返回值类型 方法名(数据类型 参数名,...);
}
3.注意
1.接口只有一个访问修饰符public。
2.接口默认提供public、static、final、abstract关键字。
3.接口不能实例化对象。
4.接口可以继承多个接口。
类实现接口:
实现接口的关键字:implements
类实现接口的格式:类可以先继承一个类再实现接口。
public class 类名 extends 类名 implements 接口,... {
//类中必须要实现接口中所有的抽象方法(包含接口继承的父接口中的抽象方法)
}
三、.事件机制
写好一个界面后,我们会对界面进行一些操作,如,在输入框输入数据,点击按钮。这些操作就称为事件
1.事件源对象
1.有哪些内容可以成为事件源对象?
只有的容器组件和元素组件才可以成为事件源对象。(只有AWT组件和SWING组件)
2.如何确定界面上哪一个组件是事件源对象呢?
你的动作发生在哪一个组件上,那么该组件就是事件源对象。
2.事件监听方法
addActionListener(ActionListener l);
捕获类似按钮组件上是否有鼠标的单击操作或者类似输入框中是否有键盘的回车动作,捕获到动作之后,就会交给参数ActionListener类型的对象l进
行处理,l对象会根据发生的动作调用不同的方法,然后执行方法中的代码。
addMouseListener(MouseListener l);
捕获事件源上鼠标的按下、释放、单击、进入和离开的动作,捕获到动作之后,就会交给参数MouseListener类型的对象l进行处理,l对象会根据发生的动作
调用不同的方法,然后执行方法中的代码。
addMouseMotionListener(MouseMotionListener l);
捕获事件源上鼠标的移动和拖动的动作,捕获到动作之后,就会交给参数MouseMotionListener类型的对象l进行处理,l对象会根据发生的动作
调用不同的方法,然后执行方法中的代码。
addKeyListener(KeyListener l);
捕获事件源上键盘按键按下,释放和敲击动作,捕获到动作之后,就会交给参数KeyListener类型的对象l进行处理,l对象会根据发生的动作
调用不同的方法,然后执行方法中的代码。
3.事件接口
ActionListener动作事件接口
MouseListener 鼠标事件接口
MouseMotionListener鼠标移动事件接口
KeyListener 键盘事件接口
事件处理类:定义类去实现事件接口,该类就是事件处理类。
四、代码实现
现在我们实现一个简单的界面,监听按钮有没有被点击
1.简单界面
public class showFrame {
public static void main(String[] args) {
showFrame lf = new showFrame();
lf.init();
}
//自定义初始化窗体界面的方法
public void init() {
// 实例化顶级容器JFrame窗体类的对象。
javax.swing.JFrame frame = new javax.swing.JFrame();
// 设置窗体容器类对象的属性值:标题、大小、显示位置、关闭操作、布局、可见。
frame.setTitle("Login");// 设置窗体的标题属性值
frame.setSize(300, 400);// 设置窗体的大小属性值
frame.setDefaultCloseOperation(3);// 设置窗体点击关闭按钮执行的方法,3表示关闭窗体退出程序
frame.setLocationRelativeTo(null);// 设置窗体相对于另一个组件的位置,null表示窗体在屏幕的中央。
//实例化一个流式布局类的对象
java.awt.FlowLayout fl = new java.awt.FlowLayout();
//设置窗体容器组件对象的布局方式
frame.setLayout(fl);
// 实例化组件类的对象,然后将组件类的对象添加到窗体上容器上。
// 使用ImageIcon从磁盘上加载一张图片到程序中
javax.swing.ImageIcon img = new javax.swing.ImageIcon(this.getClass()
.getResource("33.png"));
// 实例化一个JLabel类的对象,然后将img图片到添加到JLabel对象上。
javax.swing.JLabel labImg = new javax.swing.JLabel(img);
// 将labImg添加到窗体容器组件对象上
frame.add(labImg);
// 实例化一个JLabel类的对象,然后将“账号:”文字到添加到JLabel对象上。
javax.swing.JLabel labName = new javax.swing.JLabel("账号:");
/将组件添加到窗口
frame.add(labName);
//实例化一个JTextField类的对象
javax.swing.JTextField textName = new javax.swing.JTextField();
//实例化一个封装组件宽度高度的类
java.awt.Dimension dim = new java.awt.Dimension(220, 30);
//把textName组件大小,设置为dim
textName.setPreferredSize(dim);//设置组件的大小
//将组件添加到窗体上
frame.add(textName);
//实例化一个JBtton类对象
javax.swing.JButton reme=new javax.swing.JButton("登录");
java.awt.Dimension dio=new java.awt.Dimension(80,30);
reme.setPreferredSize(dio);
frame.add(reme);
frame.setVisible(true);// 设置窗体为可见,这句话要放到最后
}
}
2.给登录按钮添加监听器
选择合适的接口,定义一个类来实现接口
public class ButtonListener implements java.awt.event.ActionListener
{
//重写(实现)接口中所有方法
public void actionPerformed(ActionEvent e)
{
System.out.println("按钮被点击了!");
}
}
//创建监听器对象
ButtonListener mbl=nwe ButtonListener();
//将监听器加给按钮
Button.addActionListener(mbl);
3.整合上面所有代码,执行程序
四、小总结
实现界面并不难,其实就是按部就班,你需要做的就是熟悉各种组件的创建方法,知道调用什么函数。而事件监听机制说简单一点就是一个类嘛,你懂得什么时候要干什么事,怎么做这件事就能掌握了。记住,基本的语法和函数要熟悉!