java 图形界面设计
第六讲 窗口应用程序设计
java 图形界面设计
Java GUI开发类库
java.awt 本类包是各种窗口环境的统一界面(AWT代 表Abstract Windows Toolkit,即抽象窗口工具包), 其中的类使得创建诸如窗口、菜单、滚动条、文本区 、按钮以及复选框等图形用户界面(GUI)的元素变得 非常容易 javax.swing Swing是第二代GUI开发工具集, AWT采用 了与特定平台相关的实现,而绝大多数Swing组件却不 是. Swing是构筑在AWT上层的一组GUI组件的集合, 为保证可移植性,它完全用Java语言编写.和AWT相 比,Swing提供了更完整的组件,引入了许多新的特性 和能力
java 图形界面设计
AWT_GUI_1.javaimport java.awt.*; public class AWT_GUI_1 { public static void main(String args[]) { Frame f = new Frame("MyTest Frame"); Panel pan = new Panel(); f.setSize(200,200); f.setBackground(Color.blue); f.setLayout(null); // 取消布局管理器 pan.setSize(100,100); pan.setBackground(Color.green); f.add(pan); f.setVisible(true); } }
java 图形界面设计
java.awt包
提供了基本的java程序GUI设计工具– Component/MenuComponent – Container – LayoutManager
java程序要显示的GUI组件必须是抽象类 Component或MenuComponent的子类
java 图形界面设计
组件(Component)
Java的图形用户界面的最基本组成部分 是组件,组件是一个可以以图形化的方 式显示在屏幕上并能与用户进行交互的 对象,例如一个按钮,一个标签等。 组件不能独立地显示出来,必须将组件 放在一定的容器中才可以显示出来。
java 图形界面设计
容
器(Container)
容器(Container)实际上是Component的子类,因此容 器类对象本身也是一个组件,具有组件的所有性质, 另外还具有容纳其它组件和容器的功能。容器类对象可使用方法add()添加组件 两种主要的容器类型– Window: 可自由停泊的顶级窗口 – Panel:可作为容器容纳其它组件,但不能独立存在,必须被添 加到其它容器中(如Window 或 Applet)
java 图形界面设计
组件定位
Java组件在容器中的位置和尺寸由布局管理器 决定如要人工控制组件在容器中的大小位置,可取 消布局管理器,然后使用Component类的下述 成员方法:– setLocation() – setSize() – setBounds()
java 图形界面设计
Frame类
Frame类是抽象类Window的子类 Frame对象显示效果是一个“窗口”,带有标 题和尺寸重置角标 默认初始化为不可见的,可使用 setVisible(true)方法使之变为可见 默认的布局管理器是BorderLayout 可使用setLayout()方法改变其默认布局管理器
java 图形界面设计
Frame类继承层次http://ng.Object | +http://ponent | +----java.awt.Container | +----java.awt.Window | +----java.awt.Frame
java 图形界面设计
Panel类提供容纳组件的空间 可以采用和所在容器不同的布局管理器 Panel类的继承层次 http://ng.Object | +http://ponent | +----java.awt.Container | +----java.awt.Panel
java 图形界面设计
Component类常用方法
Component类是所有组件和容器的抽象父类,其中定 义了一些每个容器和组件都可能用到的方法,较常用 的有: public void add(PopupMenu popup): 在组件上加 入一个弹出菜单,当用户用鼠标右键单击组件时将弹 出这个菜单。 public Color getBackground( ): 获得组件的背景色 public Font getFont( ): 获得组件使用的字体 public Color getForeground( ): 获得组件的前景色
java 图形界面设计
Component类常用方法
public Graphics getGraphics( ): 获得在组件上绘图时 需要使用的Graphics对象 public void repaint(int x, int y, int width, int height): 以指定的坐标点(x,y)为左上角,重画组件中指定宽度 (width)、指定高度(height)的区域。 public void setBackground(Color c): 设置组件的背 景色 public void setEnabled(boolean b): 设置组件的使能 状态。参数b为真则组件使能,否则组件不使能。只有使 能状态的组件才能接受用户输入并引发事件 public void setFont(Font f): 设置组件使用的字体
java 图形界面设计
Component类常用方法
public void setSize(int width, int height): 设置组件 的大小 public void setVisible(boolean b): 设置组件是否可见 的属性。参数b为真时,组件在包括它的容器可见时也可 见;否则组件不可见。 public void setForeground(Color c): 设置组件的前景 色 public void requestFocus( ): 使组件获得注意的焦点
java 图形界面设计
布局管理器
为了使我们生成的图形用户界面具有良好的平 台无关性,Java语言中,提供了布局管理器这 个工具来管理组件在容器中的布局,而不使用 直接设置组件位置和大小的方式。每个容器都有一个布局管理器,当容器需要对 某个组件进行定位或判断其大小尺寸时,就会 调用其对应的布局管理器。
java 图形界面设计
容器布局 (Container Layouts)
FlowLayout BorderLayout GridLayout CardLayout GridBagLayout
java 图形界面设计
默认布局管理器Component Container
Window Frame Dialog
PanelApplet
BorderLayout
FlowLayout