GUI

来源:互联网 发布:sql注入攻击检测工具 编辑:程序博客网 时间:2024/05/16 08:27
01.GUI概述
————————————————————————————————————————
计算机有两种方法与用户交互:命令行和图形用户界面
GUI:Graphical User Interface         图形用户接口。
CLI:Command line User Interface  命令行用户接口。
Gui相对于CLI更加方便直接,因为不用记住复杂的命令可。

Java中为GUI提供的对象都存在Java.Awt和javax.Swing连个包中
java.Awt:Abstract Window Toolkit 抽象窗口工具包。
   该包较依赖本地系统,属于重量级控件
Java.Swing:是对Awt的升级,完全基于Awt,提供了更多的控件。
完全由java实现,在任何平台实现的效果都一样。
增强了移植性,属于轻量级控件
还有一个Swt包,Eclipse的界面就是由Swt开发的。

继承关系图
黑马程序员_Day22_GUI - 九五二七 - 今天

黑马程序员_Day22_GUI - 九五二七 - 今天
 
02.布局—layout
————————————————————————————————————————
容器中的组件的排放方式就是布局
FlowLayout 流式布局
从左到右的顺序排列
Panel默认的布局管理器
BorderLayout 边界布局
东 南 西 北 中(该布局中若没有指定方位,将以最大面积填充窗体-没有边界)
Frame默认的布局管理器
GridLayout   网络布局      grid:格子,网格
规则的矩阵
CardLayout  卡片布局
选项卡
GridBagLayout 网络包布局
非规则的矩阵

GUI的布局做之前要画草稿,做界面最苦恼--丑就一个字

03.Frame
————————————————————————————————————————
Frame中的方法过于多,要熟练掌握API的查找。
只要开启图形界面就会开启一个线程。
创建图形化界面:
1,创建frame窗体。
2,对窗体进行基本设置。比如大小,位置,布局。
3,定义组件。
4,将组件通过窗体的add方法添加到窗体中。
5,让窗体显示,通过setVisible(true)
牛刀小试:
黑马程序员_Day22_GUI - 九五二七 - 今天

04.事件监听机制
————————————————————————————————————————
事件监听机制的组成:1.事件源   2.事件  3.监听器 4.事件处理。
事件源:就是awt包或者swing包中的那些图形界面组件。
事件:每一个事件源都有自己特有的对应事件和共性事件。
监听器:将可以触发某一个事件的动作(不只一个动作)都已经封装到了监听器中。
以上三者,在java中都已经定义好了。直接获取其对象来用就可以了
我们要做的是对产生的动作进行处理
 黑马程序员_Day22_GUI - 九五二七 - 今天

05.窗体事件
————————————————————————————————————————
黑马程序员_Day22_GUI - 九五二七 - 今天


06.Action事件
————————————————————————————————————————
 adapter出现的目的就一个:刚·方便创建监听器对象,重写7个方法。
而ActionListener中只有一个方法(actionPerformed(ActionEvent)),不需要adapter。
ActionListener是少数没有adapter(适配器)的接口之一。

import java.awt.*;
import java.awt.event.*;

class FrameDemo
{
private Frame f;
private Button b;

FrameDemo()
{
init();//一定要此句,否则编译通过,执行也通过,就是不显示窗体。
}
public void init()
{
f = new Frame("my frame");
f.setBounds(300,100,600,400);//综合了setSize与setLocation
f.setLayout(new FlowLayout());
b = new Button("my button");
f.add(b);
myEvent();
f.setVisible(true);
}

private void myEvent()
{
f.addWindowListener(new WindowAdapter()
{
public void windowCloseing(WindowEvent e)
{
System.exit(0);
}
});
b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}

});
}
public static void main(String[] args) 
{
new FrameDemo();
}
}


0 0
原创粉丝点击