------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
GUI
GUI
Graphical User Interface(图形用户接口)。
用图形的方式,来显示计算机操作的界面,这样更方便更直观。
CLI
Command line User Interface (命令行用户接口)
就是常见的Dos命令行操作。
需要记忆一些常用的命令,操作不直观。
Java为GUI提供的对象都存在java.awt和javax.swing两个包中
Awt与 Swing:
java.awt:Abstract Window ToolKit (抽象窗口工具包),需要调用本地系统方法实现功能。属重量级控件。
javax.swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。增强了移植性,属轻量级控件。
布局管理器
容器中的组件的排放方式,就是布局。
常见的布局管理器:
FlowLayout(流式布局管理器)
从左到右的顺序排列。
Panel默认的布局管理器。
BorderLayout(边界布局管理器)
东,南,西,北,中
Frame默认的布局管理器。
GridLayout(网格布局管理器)
规则的矩阵
CardLayout(卡片布局管理器)
选项卡
GridBagLayout(网格包布局管理器)
非规则的矩阵
awt:
package cn.itcast.gui.p1.awt;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class AwtDemo {
/**
* @param args
*/
public static void main(String[] args) {
//1,创建窗体。
Frame f = new Frame("my frame");
//2,对创建进行基本设置。
// f.setSize(600, 500);
// f.setLocation(350, 150);
f.setBounds(350, 150, 600, 500);
f.setLayout(new FlowLayout());
//3,创建其他组件。比如按钮。
Button but = new Button("new button");
//4,将其他组件添加到窗体中。
f.add(but);
//给窗体添加一个监听器。处理关闭动作。
f.addWindowListener(new WindowAdapter(){
/* (non-Javadoc)
* @see java.awt.event.WindowAdapter#windowClosing(java.awt.event.WindowEvent)
*/
@Override
public void windowClosing(WindowEvent e) {
System.out.println("程序关闭");
System.exit(0);
}
});
but.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("按钮关闭");
System.exit(0);
}
});
//5,显示窗体。
f.setVisible(true);
// System.out.println("over");
}
}
swing:
package cn.itcast.gui.p2.swing;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class SwingDemo {
/**
* @param args
*/
public static void main(String[] args) {
JFrame frame = new JFrame("my jframe");
frame.setBounds(350, 150, 600, 500);
frame.setLayout(new FlowLayout());
JButton but = new JButton("new Button");
frame.add(but);
but.addActionListener(new ActionListener(){
/* (non-Javadoc)
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
frame.setVisible(true);
}
}
事件监听机制组成:
事件源(组件)
事件(Event)
监听器(Listener)
事件处理(引发事件后处理方式)
事件监听机制
确定事件源(容器或组件)
通过事件源对象的addXXXListener()方法将侦听器注册到该事件源上。
该方法中接收XXXListener的子类对象,或者XXXListener的子类XXXAdapter的子类对象。
一般用匿名内部类来表示。
在覆盖方法的时候,方法的参数一般是XXXEvent类型的变量接收。
事件触发后会把事件打包成对象传递给该变量。(其中包括事件源对象。通过getSource()或者,getComponent()获取。