一.什么是GUI?
GUI全称Graphical User Interface,即用户图形界面。几乎所有的程序设计及软件都提供GUI设计功能。java针对GUI提供了丰富的类库,这些类分别位于java.awt和javax.swing包中,简称AWT和swing。
AWT是用于创建图形用户界面的一个工具包,它提供了一系列用于实现图形用户界面的组件,如窗口,按钮,对话框等。AWT中的组件分成两大类,分别是Component和MenuComponent.
MenuComponent是所有与菜单相关组件的父类。
Component类通常被称为组件,根据Component的不同作用,可分为基本组件类和容器类。
而容器类则是通过Component子类Container实例化的对象,Container容器又分成两种类型,分别是Window和Panel.
1.Window类是不依赖其他容器而单独存在的容器,它有两个子类分别Frame和Dialog类。
Frame类用于创建一个具有标题栏的框架窗口,作为程序的在主界面Dialog类用于创建一个对话框,实现用户的信息交互。
2.Panel类不能单独存在,只能存在其他容器中。
案例一 创建一个简单的图形界面,鼠标事件
package hyz;
import java.awt.event.*;
import java.awt.*;
import java.awt.Frame;
public class Zhu02 {
public static void main(String args[]){
Frame f=new Frame("我的窗体!");
f.setSize(400,300);
f.setLocation(300,500);
f.setVisible(true);
/*Button btn=new Button("EXIT");
f.add(btn);
btn.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
System.exit(0);*/
Button but=new Button("button");
f.add(but);
but.addMouseListener(new MouseAdapter(){
public void mouseReleased(MouseEvent e){
System.out.println("mouseReleased-鼠标放开事件");
}
public void mousePressed(MouseEvent e){
System.out.println("mousePressed-鼠标按下事件");
}
public void mouseEntered(MouseEvent e){
System.out.println("mouseEntered-鼠标进入按钮区事件");
}
public void mouseClicked(MouseEvent e){
System.out.println("mouseClicked-鼠标完成按钮区事件");}
public void mouseExited(MouseEvent e){
System.out.println(" mouseExited(-鼠标移出按钮区事件");
System.exit(0);
}
});
}
}
案例二.匿名内部类使用
package hyz;
import java.awt.*;
import java.awt.event.*;
public class Zhu02 {
public static void main(String args[]){
final Frame f=new Frame("mywindow可关闭");
//f.setLayout(new BorderLayout());
f.setSize(400,300);
f.setLocation(600,500);
f.setVisible(true);//设置窗口可见
f.addWindowListener(new MyWindowLisener());//为窗口组件注册监听器
}
}
class MyWindowLisener extends WindowAdapter{
public void windowClosing(WindowEvent e){
Window window=(Window) e.getComponent();//定义的window类继承了适配器类
window.dispose();
}
}