GUI全程是Graphical User Interface,即图形用户界面
JDK中提供了awt和swing两个包,用于GUI程序的设计和开发
GUI组件可以分为两大类:基本组件和容器,分别是java.awt.Component和java.awt.Container的直接或间接子类
package com.swing;
import java.awt.Button;
import java.awt.Frame;
public class TestFrame {
public static void main(String[] args) {
// TODO Auto-generated method stub
//窗体
Frame f = new Frame("hp");
f.add(new Button("ok"));
f.setSize(300,300);
f.setVisible(true);
try
{
Thread.sleep(5000);
}catch (Exception e) {
// TODO: handle exception
}
f.setVisible(false);
//f.dispose();
}
}
时间处理机制
三个重要的概念
事件:用户对组件的一个操作,称之为一个事件。
事件源::发生事件的组件就是事件源
事件处理器:某个Java类中的负责处理事件的成员方法
事件分类
按产生事件的物理操作和GUI组件的表现效果进行分类:
MouseEvent
WindowEvent
ActionEvent
.......
按事件的性质分类
低级事件
语义事件(又叫高级事件)
事件监听器
一个事件监听器对象负责处理一类事件
一类事件的每一种发生情况,分别由事件监听器对象中的一个方法来具体处理
在事件源和事件监听器对象中进行约定的接口类,被称为事件监听器接口
事件监听器接口类的名称与事件类的名称是想对应的,例如MouseEvent事件类的监听器接口名为MouseListener
MyWindowListener.class
package com.swing;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class MyWindowListener implements WindowListener{
@Override
public void windowOpened(WindowEvent e) {
}
@Override
public void windowClosing(WindowEvent e) {
e.getWindow().setVisible(false);
e.getWindow().dispose();
// //来源 //Obeject
// //e.getSource()
// //组件 返回类型java.awt.Component
System.exit(0);
}
@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
}
Main.class
package com.swing;
import java.awt.Button;
import java.awt.Frame;
public class TestFrame {
public static void main(String[] args) {
// TODO Auto-generated method stub
//窗体
Frame f = new Frame("hp");
f.add(new Button("ok"));
f.setSize(300,300);
f.setVisible(true);
f.addWindowListener(new MyWindowListener());
}
}