Core Java GUI

GUI(图形编程)基础

(Graphical User Interface,GUI)

AWT(Abstract Window Toolkit):抽象窗口工具集

AWT是JDK的一部分,在开发图形应用程序和Applet小程序时使用。

AWT为用户界面程序提供:组件(按钮、标签、下拉菜单、画布、文本框、复选框、列表等),事件类、监听器、图形处理tools、2D图形等支持。

AWT中4个主要的类用于确定容器内部组件的位置和形状:

  Component:组件

  Container:容器

  LayoutManager:布局管理器

  Graphic:图形

  具体介绍见:java.awt.*;

 

Frame:窗口,它是Window的子类,顶级窗口容器。(java.awt.Frame)

Frame可以添加组件、设置布局管理器、设置背景色等。

Panel:面板,它是Container的子类,它提供了建立应用程序的容器。

 

GUI框架设计:

1.创建主框架JFrame frame = new JFrame("Calculator"); //标题:Calculater

2.创建获取框架的构造容器:Container contentPane= frame.getContentPane(); // 获取容器

GUI/FrameTest.java

 1 package GUI;
2
3
4
5 import java.awt.BorderLayout;
6
7 import java.awt.Color;
8
9 import java.awt.Frame;
10
11 import java.awt.Panel;
12
13
14
15 public class FrameTest extends Frame {
16
17 /**
18
19 * @param args
20
21 */
22 public static void main(String[] args) {
23
24 // TODO Auto-generated method stub
25
26 FrameTest f = new FrameTest("FrameTest");//调用构造方法
27
28 f.setSize(100,100);//设置窗口大小,default:(0,0)
29
30 f.setBackground(Color.GREEN);//设置背景色,default:red
31
32 f.setVisible(true);//设置窗口是否可见,default:false
33
34
35
36 Panel p = new Panel();//创建Panel对象p
37
38 p.setSize(50,50);
39
40 f.add(p);//调用add()方法把panel添加到frame中
41
42 }
43
44
45
46 public FrameTest(String frame){
47
48 super(frame);//调用父类的构造方法
49
50 }
51
52 }


 

 

AWT布局管理器:

BorderLayout:边界布局。将容器分east、south、west、north、center,当向容器添加组件时,要指明组件放置的区域。

FlowLayout:顺序布局。将组件从左到右、从上到下放置。

CardLayout:卡片布局。将加入的组件视为卡片栈,把每个组件放在一张卡片上,每次只能看见一张卡片。

GridLayout:网格布局。将容器分成相同尺寸的网格,将组件从左到右、从上到下放置在网格中。

GridBagLayout:网格包布局。一个组件可以占用多个网格,在加入组件时必须指明一个对应的参数。

 

组件(Component):在使用GUI组件时,所有的组件都是层层嵌套的,通过组件的嵌套最终整合到面板上,再进行事件处理。

按钮(Button):实现某个单击动作

构造方法:

Button button = new Button("button name");

产生ActionEvent事件条件:

要实现ActionListener接口监听

调用addActionListener方法接收单击事件

 

标签(Label):在容器中放置静态文本的组件

构造方法:

Label label = new Label("label content");

 

复选框(Checkbox):一个处于on或者off状态的组件

方法:

add(new Checkbox("first",null,true));

add(new Checkbox("second"));

单击Checkbox,产生ItemEvent事件,使用ItemListener监听

getStateChange()获取当前状态,getItem()获得Checkbox的字符串对象。

 

下拉式菜单(Choice):表示一个弹出式选择菜单组件

使用ItemListener监听

Choice colorChoice = new Choice();

colorChoice.add("item1"); //添加一个菜单项item1

 

Canvas:画布

画布是处于屏幕上的一个空白的矩形区域,通过调用方法,在该区域内可以绘图,可以触发event。

 

文本框(Text):可编辑的单行文本组件

Text1 = new TextField(); //空单行文本框

Text2 = new TextField(10);//输入区长度为10的文本域

Text3 = new TextField("hello");//带初始文本内容的单行文本框

Text4 = new TextField("hello",10);//带初始文本内容的、指定输入区长度为10的文本域

当在文本域输入结束,回车将产生ActionEvent事件,通过ActionListener的actionPerformed()方法处理事件。

扩展:Area = new TextArea(); //一个空文本区  ...

 

滚动条(Scrollbar):调整线性值

Scrollbar bar= new Scrollbar(Scrollbar.VERTICAL,0,1,0,255);

add(bar);//将bar添加于容器

改变Scrollbar的值,产生AdjustmentEvent事件。监听AdjustmentEvent事件,要实现AdjustmentListener接口,调用addAdjustmentListener()和removeAdjustmentListener()方法添加或删除监听器。

 

菜单栏(Menubar):菜单必须先添加到菜单栏中

MenuBar mb = new MenuBar();//创建,并初始化菜单栏

f.setMenuBar(mb);//将菜单栏对象设置为窗口的菜单栏

Menu menu1 = new Menu("File");//创建,初始化菜单menu1

MenuItem menuItem = new MenuItem("Save");//创建,初始化菜单项

 

绘图(Graphic)

Graphic类用于绘图和显示格式化文字的输出工具。

具体见api。

posted @ 2012-02-04 17:41  qin520  阅读(648)  评论(0编辑  收藏  举报