---------------------- android培训 、java培训 、期待与您交流! ----------------------
GUI
图形用户接口
CLI 命令行用户接口
java为GUI提供的对象都存在java.Awt(重量级控件)和java.Swing(轻量级控件)两个包中
容器的排放方式,即布局
1 FlowLayout 流式布局 从左到右的数序排列
2 BorderLayout 边界布局 东南西北中
3 GridLayout 网格布局管理 规则的矩阵
4 GardLayout 卡片布局管理 选项卡
5 GirdBagLayout 网格包布局管理器 非规则的矩阵
创建图形化界面步骤:
1 创建窗体
2 对窗体进行基本设置
3 定义组件
4 将组件通过窗体的add方法添加到窗体中
5 让窗体显示,通过setVisible(true)
事件监听机制
1 事件源 awt包或swing包中的图形界面组件
2 事件 每一个事件源的共性事件和特有事件
3 监听器 将可以触发某一个事件的所有动作都封装到了监听器中
4 事件处理 可以由程序员自己编写代码处理事件
开发事项
1 由于实现windowListener 接口需要重写其7个方法,而可能只会用其中一个方法
这样就有多余的代码。而windowListener 的子类windowAdapter已经实现了windowListener
接口并重写了其中的所有方法,那么我们只需要继承windowAdapter,重写我们需要的方法即可
2 想要知道那个组件具备什么样的的特有的监听器,需要查看该组件对象的功能
按钮特有的监听器 addActionListener() 实现ctionListener接口重写相应方法处理相应事件
3 鼠标监听事件 addMouseListener() 继承MouseAdapter类重写相应方法处理相应事件
4 键盘监听事件 addKeyListener() 继承KeyAdpter类重写相应方法处理相应事件
package gui;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class test {
public static void main(String[] args) {
Frame f = new Frame("窗体");// 创建一个窗体 也可以让类从Frame继承
f.setSize(600, 400);// 设置宽 高
f.setLocation(400, 150);// 设置初始位置
// f.setBounds() 设置 坐标 宽 高
//设置布局方式
f.setLayout(new FlowLayout());
f.setVisible(true);
Button b = new Button("按钮");// 创建一个按钮
// 添加窗体监听器,并用匿名内部类方式执行事件
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// 创建单行文本框组件
final TextField tf = new TextField(30);
// 把文本框组件绑定到窗体
f.add(tf);
// 把按钮组件绑定到窗体
f.add(b);
// 添加按钮的监听器,并用匿名内部类方式执行事件
// b.addActionListener(new ActionListener() {
//
// public void actionPerformed(ActionEvent e) {
// System.exit(0);
// }
// });
// 添加鼠标事件
b.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2)
System.out.println("aaaaa");
}
});
// 添加键盘事件
b.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
// 当按下键盘esc时触发
if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
System.exit(0);
}
// 当按下ctrl+s 时触发
if (e.isControlDown() && e.getKeyCode() == KeyEvent.VK_S) {
System.out.println(KeyEvent.getKeyText(e.getKeyCode()));
}
}
});
tf.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
if(!(code>=KeyEvent.VK_0&&code<=KeyEvent.VK_9)){
System.out.println(e.getKeyCode()+"非法");
e.consume();
}
}
});
Button b2 = new Button("提交");
f.add(b2);
//创建多行文本框
final TextArea ta = new TextArea(10,80);
f.add(ta);
b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text = tf.getText();
ta.append(text);
tf.setText("");
}
});
}
}
---------------------- android培训 、java培训 、期待与您交流! ----------------------