Java界面设计经典
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
组件容器
框架(Frame)
Frame是一个顶级窗口,通常是应用程序的骨架。Frame中的退出按钮 被点击后,将产生一个WindowEvent事件,表示关闭Frame,可以在Frame 中实现WindowListener接口以监听WindowEvent事件。Frame中无法直接 监听键盘事件,但可以往Frame中添加画布、面板凳组件,让它们来负责 监听键盘事件。
使用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
Graphics类还提供了一系列的方法来绘制几何图形、文字、 图象以及动画: Lines:drawLine() Rectangles:drawRect(), fillRect() 和 clearRect() Raised or lowered rectangles:draw3DRect() 和 fill3DRect() Round-edged rectangles:drawRoundRect() 和 fillRoundRect() Ovals:drawOval() 和 fillOval() Arcs:drawArc() 和 fillArc() Polygons :drawPolygon() 和 fillPolygon() Text :drawString() Image :drawImage() Animation :通过一个循环来完成
组件容器 用户可以从具体的容器中继承来创建自己的 容器,以构造一些个性化的窗口。一般用户通 常要构造一些适合自己需要的对话框,此时, 可以从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); }
组件容器
文件对话框(FileDialog)
表示文件选择的对话框,它是有模式对话框。可以用其getFile()方 法来获得要打开或要存储的文件名。
滚动窗口(ScrollPane)
滚动窗口也是容器的一种,象Panel一样,无法单单独使用。使用 滚动窗口可以查看大面积的区域,因为它有滚动条。滚动窗口内只能 放一个组件,因此也无须布局管理器。通常是在滚动窗口中放一个面 板,然后在面板中添加各种组件。滚动窗口中的事件一般由其中的组 件来管理。
通过图形用户界面(Graphical User Interface,GUI), 用户和程序之间可以方便友好地进行交互。在Java语言中, Java的基础类(Java Foundation Classed,JFC)是开发GUI 的API集,它包括以下几个部分: 抽象窗口工具包(AWT):Java开发用户界面最初的 工具包,是建立JFC的主要基础; 2D API:实现高质量的二维图形; Swing组件:建立在AWT之上,新的、功能更强大的图 形组件包; 可访问API:支持残疾用户的交互; ……
使用AWT
使用AWT
菜单类 菜单类也是一种组件,只不过菜单类并不是由一般的 Component类派生的,而是从MenuComponent类继承 得到的。
使用AWT
Container类 Container类是由Component类派生出来的一种特殊 类,用来表示各种GUI组件的容器,其主要功能包括: 组件的管理:方法add()可以向其中添加一个组件, remove()删除其中的一个组件,… 布局管理:每个Container类都和一个布局管理器相 联,以确定其中组件的布局。 Container类可以通过 setLayout()方法设置某种布局方式。 常见的Container类有:Frame,Dialog,Panel, Applet等。
Demo:Frame
import java.awt.*; public class frame extends Frame { public static void main(String args[]) { Frame fr = new Frame("Frame Test"); fr.setSize(400,300); fr.setBackground(Color.gray); fr.setVisible(true); } }
GUI and Event
1、使用AWT(Abstract Window Toolkit)组件 2、包含组件的组件——组件容器(Container) 3、外观的管理与控制 4、事件与事件处理 5、AWT中的各种组件 6、组件的应用实例
使用AWT(Abstract Window Toolkit)组件
面板(PBiblioteka Baidunel)
面板可以处理事件,但象画布一样,一定要先获得输入焦点。
对话框(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
事件类:描述各种事件的类,包括AWTEvent类及其子 类、Event类。 字体类:用来表示字体的类,通过它可以在GUI中使用 多种系统支持的字体。 图象类:用来表示与处理图象的类(GIF、JEPG)。 颜色类:封装了各种颜色。 其他类:光标类、各种几何类等 ……
使用AWT
组件及其对等类(peers) java.awt.peer中有全部awt组件的对等对象的集合,每个 对象都提供了机器相关基本的方法,awt中的组件使用这些 方法来实现机器和操作系统无关的GUI。
使用AWT
布局管理器类 Java中提供了各种布局管理器类来管理各种组件在容器 中的放置状态,这些类都是实现了LayoutManager接口的。 标准的布局管理器类有: FlowLayout BorderLayout GridLayout CardLayout GridBagLayout 还可以通过实现LayoutManager接口来定义自己的布局 管理器。
组件容器
Panel可以使程序员更方便地组织自己的组件,得到赏 心悦目的布局。 Panel可以使用构造方法Panel()生成,当一个Panel对象 被创建后,必须放在Window和Frame中才能可见。使用 add()方法就可以将Panel添加到其他容器中。 Applet是Panel的子类,因此在小应用程序里可以直接加 入组件,而一般的应用程序必须先定义组件容器。小应用 程序在浏览器中所显示的区域就是Panel,所占的尺寸就是 缺省的Panel尺寸(浏览器本身也可以看作是一个容器)。
组件容器
一个Java的图形用户界面的最基本组成部分就是组件 (Component),组件是一个可以以图形化的方式显示在 屏幕上并能与用户进行交互的对象,比如Button, Checkbox, Choice, Label, List等。 组件不能独立地显示出来,必须将组件放在特定的对象 中才能显示出来,这就是包含组件的组件——Container (容器)。容器Container是Component的子类,它本身也 是一个组件,具有组件所有的性质。另外,它还具有容纳 其他组件和容器的功能。
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); } }
}
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);
使用AWT
java.awt包中包含了一个完整的类集以支持GUI程序的 设计,其中的类及相互关系可以用下图来描述: java.lang.Object 事件类 字体类 Button Checkbox Graphics 颜色类 图象类 菜单类
Component List … Window Frame
布局管理类 Container Panel Applet Dialog
使用AWT
Graphics类 Graphics类是所有用来在组件上进行图形绘制时所使 用的图形环境上下文的父类,它提供了对组件进行图形 绘制的一般方法的接口,一个Graphics对象中封装了用来 进行图形绘制时必须得状态信息,包括: 要绘制的组件对象 当前颜色 当前字体 当前逻辑点操作的功能(XOR和Paint) 当前XOR方式的替代颜色 ……