GUI
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。
布局管理器
- FlowLayout(流式布局管理器)
- 从左到右的顺序排列。
- Panel默认的布局管理器。
- BorderLayout(边界布局管理器)
- 东,南,西,北,中
- Frame默认的布局管理器。
- GridLayout(网格布局管理器)
- 规则的矩阵
- CardLayout(卡片布局管理器)
- 选项卡
- GridBagLayout(网格包布局管理器)
- 非规则的矩阵
适配器设计模式
- a.什么是适配器
- 在使用监听器的时候, 需要定义一个类事件监听器接口.
- 通常接口中有多个方法, 而程序中不一定所有的都用到, 但又必须重写, 这很繁琐.
- 适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要的方法即可.
- b.适配器原理
- 适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全是空的.
- 适配器类需要定义成抽象的,因为创建该类对象,调用空方法是没有意义的
- 目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方法就可以了.
package com.fenqing.GUI;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Toolkit;
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;
import java.awt.event.WindowListener;
public class d01_frame {
public static void main(String[] args) {
Frame f=new Frame("我的第一个窗口");
f.setSize(400,600); //设置窗口大小
f.setLocation(300,50); //设置窗口出现的位置
//设置窗口的小图标
f.setIconImage(Toolkit.getDefaultToolkit().createImage("qq.png"));
Button b1=new Button("按钮1");
f.add(b1); //添加按钮
f.setLayout(new FlowLayout()); //设置布局管理器
//f.addWindowListener(new mywindowListener());//设置窗口监听
//或者直接用匿名内部类
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
b1.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
System.exit(0); //鼠标监听,释放操作
}
});
b1.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
//System.exit(0); //键盘监听,释放操作
//System.out.println(e.getKeyCode());
if(e.getKeyCode()==32){ //或者 KeyEvent.VK_SPACE
System.exit(0);
}
}
});
f.setVisible(true); //设置窗口为可见,否则见不到你所创建的窗口
}
}
/*
class mywindowListener implements WindowListener{
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosing(WindowEvent e) {
//System.out.println("closing"); //监听事件,在控制台打印closing
System.exit(0); //监听事件,退出
}
@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("closed");
}
@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
}
}*/
/*
class MyWindowAdapter extends WindowAdapter{
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}*/