当前位置:文档之家› Java界面设计经典

Java界面设计经典


使用AWT
Graphics类 Graphics类是所有用来在组件上进行图形绘制时所使 用的图形环境上下文的父类,它提供了对组件进行图形 绘制的一般方法的接口,一个Graphics对象中封装了用来 进行图形绘制时必须得状态信息,包括: 要绘制的组件对象 当前颜色 当前字体 当前逻辑点操作的功能(XOR和Paint) 当前XOR方式的替代颜色 ……
通过图形用户界面(Graphical User Interface,GUI), 用户和程序之间可以方便友好地进行交互。在Java语言中, Java的基础类(Java Foundation Classed,JFC)是开发GUI 的API集,它包括以下几个部分: 抽象窗口工具包(AWT):Java开发用户界面最初的 工具包,是建立JFC的主要基础; 2D API:实现高质量的二维图形; Swing组件:建立在AWT之上,新的、功能更强大的图 形组件包; 可访问API:支持残疾用户的交互; ……
组件容器
一个Java的图形用户界面的最基本组成部分就是组件 (Component),组件是一个可以以图形化的方式显示在 屏幕上并能与用户进行交互的对象,比如Button, Checkbox, Choice, Label, List等。 组件不能独立地显示出来,必须将组件放在特定的对象 中才能显示出来,这就是包含组件的组件——Container (容器)。容器Container是Component的子类,它本身也 是一个组件,具有组件所有的性质。另外,它还具有容纳 其他组件和容器的功能。
组件容器
框架(Frame)
Frame是一个顶级窗口,通常是应用程序的骨架。Frame中的退出按钮 被点击后,将产生一个WindowEvent事件,表示关闭Frame,可以在Frame 中实现WindowListener接口以监听WindowEvent事件。Frame中无法直接 监听键盘事件,但可以往Frame中添加画布、面板凳组件,t包中包含了一个完整的类集以支持GUI程序的 设计,其中的类及相互关系可以用下图来描述: ng.Object 事件类 字体类 Button Checkbox Graphics 颜色类 图象类 菜单类
Component List … Window Frame
布局管理类 Container Panel Applet Dialog
}
public class MyPanelInFrame extends Frame { public MyPanelInFrame(String str) { super(str); addWindowListener( new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); } public static void main(String args[]) { MyPanelInFrame fr = new MyPanelInFrame("Panel in Frame"); Panel pan = new Panel(); fr.setSize(500,500); fr.setBackground(Color.green); fr.setLayout(null); pan.setSize(200,200); pan.setBackground(Color.yellow); pan.setLocation(100,100); Button b1 = new Button("Help"); Button b2 = new Button("Test"); pan.add(b1); pan.add(b2); fr.add(pan); fr.setVisible(true);
Demo:Dialog
import java.awt.*; public class myFrame extends Frame { public static void main(String args[]) { myFrame fr = new myFrame("Frame Test"); fr.setSize(400,300); fr.setBackground(Color.white); fr.setVisible(true); fr.showDialog(); } public myFrame(String s){super(s);} public void showDialog() { Dialog fd = new Dialog(this, "Dialog Test",true); fd.setSize(100,100); fd.setBackground(Color.red); fd.setVisible(true); } }
使用AWT
Component类 java.awt包中最核心的类就是Component类,它是构成 Java图形用户界面的基础,大部分组件都是由该类派生出 来的。 Component类是一个抽象类,其中定义了组件所具 有的一般功能:基本的绘画支持(paint, repaint, update等)、 字体和颜色等外形控制(setFont, SetForeground等)、大小 和位置控制(SetSize, SetLocation等)、图象处理(实现接口 ImageObserver)以及组件状态控制(SetEnable, isEnable, isVisible, isValid等) ,……。 常见的组件包括:Button, Checkbox, CheckboxGroup, Choice, Label, List, Canvas, TextComponent, Scrollbar等。
使用AWT
事件类:描述各种事件的类,包括AWTEvent类及其子 类、Event类。 字体类:用来表示字体的类,通过它可以在GUI中使用 多种系统支持的字体。 图象类:用来表示与处理图象的类(GIF、JEPG)。 颜色类:封装了各种颜色。 其他类:光标类、各种几何类等 ……
使用AWT
组件及其对等类(peers) java.awt.peer中有全部awt组件的对等对象的集合,每个 对象都提供了机器相关基本的方法,awt中的组件使用这些 方法来实现机器和操作系统无关的GUI。
使用AWT
使用AWT
菜单类 菜单类也是一种组件,只不过菜单类并不是由一般的 Component类派生的,而是从MenuComponent类继承 得到的。
使用AWT
Container类 Container类是由Component类派生出来的一种特殊 类,用来表示各种GUI组件的容器,其主要功能包括: 组件的管理:方法add()可以向其中添加一个组件, remove()删除其中的一个组件,… 布局管理:每个Container类都和一个布局管理器相 联,以确定其中组件的布局。 Container类可以通过 setLayout()方法设置某种布局方式。 常见的Container类有:Frame,Dialog,Panel, Applet等。
面板(Panel)
面板可以处理事件,但象画布一样,一定要先获得输入焦点。
对话框(Dialog)
对话框与Frame相类似,一般用于接收用户的输入数据,实现与用户的交互。它 与一般窗口的区别在于它依赖其他的窗口。对话框分有模式和无模式两种,前者只 让应用程序响应对话框内部事件,后者则可以响应对话框以外的事件,可以通过其 构造方法来设置对话框是否有模式: Dialog( Parent, Title, isModal ) //父窗口,标题,是否有模式
组件容器
列表
按钮
菜单
窗口,对话框 另一个窗口
Container Container
组件容器 Component Container Button List Textfield Checkbox Panel Applet Window Frame Dialog FileDialog
组件容器
AWT使用Container类来定义最基本的组件容器,它有 两个常用的子类:Window类和Panel类。 Window类还有两个子类: 定义对话框,用Dialog子类。Java还提了一个Dialog 的子类——FileDialog,用它生成文件对话框。 定义一般意义的窗口,用Frame类。 Frame可以用其构造方法Fame(String)来生成,其标题由 String参数指定。一个Frame刚被创建后,其初始大小为 (0,0),而且是不可见的,所以为了使Frame显示出来, 必须在程序中显式地设置一下它的大小。
使用AWT
布局管理器类 Java中提供了各种布局管理器类来管理各种组件在容器 中的放置状态,这些类都是实现了LayoutManager接口的。 标准的布局管理器类有: FlowLayout BorderLayout GridLayout CardLayout GridBagLayout 还可以通过实现LayoutManager接口来定义自己的布局 管理器。
组件容器 用户可以从具体的容器中继承来创建自己的 容器,以构造一些个性化的窗口。一般用户通 常要构造一些适合自己需要的对话框,此时, 可以从Dialog中继承。
public class MyFrame extends Frame { public static void main(String args[]) { MyFrame fr = new MyFrame("Frame and FileDialog Test"); fr.setSize(500,500); fr.setBackground(Color.blue); fr.setVisible(true); fr.showDialog(); } public MyFrame(String str) { super(str); addWindowListener( new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); } public void showDialog() { FileDialog fd = new FileDialog(this, "FileDialog"); fd.setVisible(true); }
相关主题