GUI:Graphical User Interface(图形用户接口)
CLI:Cammand Line User Interface(命令行用户接口)
java为图形用户界面提供的类在java.awt和javax.swing两个包中。
awt:Abstract Windowsp Toolkit(抽象窗口工具包),需调用本地系统方法实现功能。
swing:在awt基础上建立一套图形界面系统,提供更多组件,完全有java实现,增强移植性。
awt框架
component (组件)是一个具有图形表示能力的对象,可在屏幕上显示,并可与用户进行交互。典型图形用户界面中的按钮、复选框和滚动条都是组件示例。
Component 类是与菜单不相关的 Abstract Window Toolkit 组件的抽象超类。还可以直接扩展类 Component 来创建一个轻量级组件。轻量级组件是与本机不透明窗口不相关的组件。
Component (容器),能够添加组件的组件。
Window (窗口)对象是一个没有边界和菜单栏的顶层窗口。窗口的默认布局是 BorderLayout。
Dialog (对话框)是一个带标题和边界的顶层窗口,边界一般用于从用户处获得某种形式的输入。
FileDialog (文件对话框)类显示一个对话框窗口,用户可以从中选择文件。
Button(按钮)此类创建一个标签按钮。当按下该按钮时,应用程序能执行某项动作。
Label (标签)对象是一个可在容器中放置文本的组件。一个标签只显示一行只读文本。文本可由应用程序更改,但是用户不能直接对其进行编辑。
CheckBox(复选框)是一个可处于“开”(true) 或“关”(false) 状态的图形组件。单击复选框可将其状态从“开”更改为“关”,或从“关”更改为“开”。
TextComponent 类是所有允许编辑文本的组件的超类。
TextArea 对象是显示文本的多行区域。可以将它设置为允许编辑或只读。
TextField 对象是允许编辑单行文本的文本组件。
布局管理器:
常见布局管理器:
FlowLayout(流式布局管理器),从左到右,上到下,Panel默认布局管理器
BorderLayout(边界布局管理器),东南西北中,Frame默认布局管理器
GridLayout(网格布局管理器):规则的矩阵
CardLayout(卡片布局管理器):选项卡
GridBagLayout(网格包布局管理器):非规则的矩阵
事件监听机制:
将事件监听器注册到事件源,监听器监听到外部动作作用于事件源后,将事件对象传递给事件处理方式,对事件进行处理。
退出窗口实例
public static void main(String[] args) {
//创建一个名为"窗口"的窗口
Frame f =new Frame("窗口");
//设置窗口默认大小及位置背景色
f.setBounds( 150, 20,900, 600);
f.setBackground(Color.darkGray);
//创建事件监听器
WindowAdapter wa = new WindowAdapter() {
//覆写处理方法
@Override
public void windowClosing(WindowEvent e) {
System.out.println("关闭");
System.exit(0);
}
};
//将监听器与组件绑定
f.addWindowListener(wa);
//将窗口设置为可见的
f.setVisible(true);
}
鼠标双击实例:
public class Demo2 {
public static void main(String[] args) {
//创建窗口
Frame f = new Frame("实例窗口");
f.setBounds(80, 20, 800, 500);
f.setLayout(new FlowLayout());
final TextArea ta = new TextArea(10, 100);
Button b =new Button("按钮");
//给按钮绑定事件监听器,监听鼠标动作
b.addMouseListener(new MouseAdapter() {
int i=0;
@Override
public void mouseClicked(MouseEvent e) {
//判断鼠标点击次数,为双击则在文本框中显示双击次数
if(e.getClickCount()==2){
ta.setText("双击次数"+i++);
}
}
});
f.add(ta);
f.add(b);
f.setBackground(Color.LIGHT_GRAY);
f.setVisible(true);
}
}
键盘监听实例:
public class Demo3 {
public static void main(String[] args) {
Frame f = new Frame("键盘监听");
f.setBounds(100, 30, 500, 400);
f.setBackground(Color.GRAY);
TextArea tx = new TextArea(10, 30);
f.setLayout(new FlowLayout());
tx.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
//监听键盘输入并将将按键信息值打印在控制台
System.out.println(e.getKeyChar()+"--->"+e.getKeyText(e.getKeyCode()));
}
});
f.add(tx);
f.setVisible(true);
}
}