Java就业培训教程第九章GUI.docx
《Java就业培训教程第九章GUI.docx》由会员分享,可在线阅读,更多相关《Java就业培训教程第九章GUI.docx(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java就业培训教程第九章GUI9.1 常用AWT组件在上一章开始的第一个程序中,我们就用到了按钮(Button),这是最简单的组件之一 了,在AWT里还有很多用于GUI设计的组件,我们现在就来熟悉更多的GUI组件。如图9.1 所示描述了 AWT中的组件及类层次关系图。BorderLayout CardLayout CheckboxGroup ColorEvent Font FlowLayout FontMetrics Graphics GridBagLayout GridLayout Image Insets Point Polygon Rectangle Toolkit Menucompo
2、nent - Componentjava. lang. ObjectDimensionMenuBar - Menuitem- - - Menu - PopupMenu -CheckboxMenuItemButton Canvas Checkbox Choice Container - Label Liat Scrollbar- Applet java.applet package)PanelWindow -ScrollPaneDialog- - - FileDialog FrameText Component-TextAreaTextFieldErrors - AWTErrorExceptio
3、ns - AWTException图9.19.1.1 Component 类Java的图形用户界面的最基本构成部分是组件,组件是一个能够以图形化的方式显示 在屏幕上并能与用户进行交互的对象,比如一个按钮,一个标签等。抽象类Component是所 有Java GUI组件的共同父类。Component类规定了所有GUI组件的基本特性,该类中定义 的方法实现了作为一个GUI组件所应具备的基本功能。Java程序要显示的GUI组件务必是 抽象类Component或者MenuComponent的子类。9.1.2 CanvasCanvas代表屏幕上的一块空白的矩形区域,程序能够在这个部件表面绘图,也能够捕关
4、于发出ActionEvent事件的组件,我们能够调用setActionCommand方法为其关联一 个字符串,用于指示这个动作想执行的命令。假如程序没有使用setActionCommand方法为 组件关联一个命令字符串,则其命令字符串为组件的标题文本。ActionEvent的 getActionCommand方法就是用于返回这个命令字符串的。使用命令字符串,我们能够用同一菜单来发出连接与断开的命令,在要发出的命令为连 接前,我们用Menultem. setActionCommand指定命令字符串为connect”,在要发出的命 令为断开前,我们指定命令字符串为disconnect,事件处理程序
5、通过推断这个命令字符 串,就明白该采取哪种动作了。假如我们程序中的菜单要针对不一致的国家,用不一致语言 文字显示,我们不管菜单项标题上显示的是什么文字,只要用setActionCommand方法为这 个菜单项指定一个命令字符串,我们就能够用同样的事件处理程序去处理这个用不一致语言 文字显示的菜单项的事件。事实上,其他一些组件也能够使用getActionCommand方法,到底有什么,读者只要在JDK文档中查找get Ac t i onCommand就明白了,如图9.6所示:Jnl 1照布局管理器Jnl xi:第二不按钮1第二个按钮:第二不按钮;第二个按钮第三个按钮第四个按钮第三个按钮|第四个按
6、钮|图 9.139.2.4 GridLayoutGridLayout将容器划分成若干行列的网格。在容器上添加组件时,它们会按从左到右、 从上到下的顺序在网格中排列。在GridLayout的构造方法里,我们需要指定希望将容器划 分成的网格的行、列数。GridLayout布局管理器总是忽略组件的最佳大小,所有单元的宽 度是相同的,是根据单元数对可用宽度进行平分而定的。同样地,所有单元的高度是相同的, 是根据行数对可用高度进行平分而定的。其效果如图9. 14所示。123+456789*0*=1图9.149.2.5 CardLayoutCardLayout布局管理器能够实现将多个组件放在同一容器区域内
7、的交替显示,相当于 多张卡片摞在一起,在任何时候都只有最上面的一个可见。CardLayout提供了几个方法, 能够显示特定的卡片,也能够按先后顺序依此显示,还能够直接定位到第一张或者最后一张。 如图9.15所示是我们要讲的例子程序界面。threethreeS 9.15只有一个布局管理器来实现上面组件布局是相当的困难的,所下列面的例子联合了更多 的布局类型。假如我们创建两个Panel对象,每个Panel上都能拥有一个布局管理器,在左 边的Panel上使用GridLayout放置三个按钮,在右边的Panel上使用CardLayout来放置卡 片,最后在窗口上使用BorderLayout放置这两个面
8、板。CardLayout容器中带有5张卡片(用 5个按钮模拟),按下prev按钮,依次向前显示,按下next按钮,依次向后显示,按下three 按钮,显示第三张卡片。下面是程序代码:程序清单:TestCardLayout. java import java.awt.*;import j ava.awt.event.*;public class TestCardLayout CardLayout cl = new CardLayout();Panel plCenter = new Panel ();public static void main(String args)new TestCardL
9、ayout () .init ();public void init ()Frame f=new Frame (布局管理器”);Panel plWest = new Panel ();f . add(plWest,nWestn);获用户的操作,产生相应的事件,Canvas能够说是具有最基本的与最简单的GUI功能的部 件。当我们要设计一种自己定制的具有GUI功能的部件类,我们的这个类就能够继承Canvas, 这样,我们的部件类就已经完成了 GUI的基本功能,我们只需要在这个基础上增加子类部件 所专有的外观与功能的有关代码就行了,我们要想绘制子类部件的外观,我们务必覆盖 Canvas 的 pain
10、t 方法。我们现在设计一个计时器部件,鼠标在部件上按下时,计时器开始计时,并在部件上显 示计时时间,鼠标释放时,计时器停止计时。下面是这个计时器的程序代码,其中涉及到的 技巧与知识点,都在前面有过讲解,这里就不作全面解释了。程序清单:TestStopWatch. javaimport java.awt.*;import j ava.awt.event.*;import j ava.util, *;import java.text.SimpleDateFormat;class Stopwatch extends Canvas implements Runnable private long st
11、artTime = 0; private long endTime = 0; private boolean bStart = false; public Stopwatch() (enableEvents(AWTEvent.MOUSE_EVENT_MASK); setSize (80,30);) protected void processMouseEvent(MouseEvent e) (if(e.getIDO = MouseEvent.MOUSE_PRESSED) ( bStart = true;startTime = endTime = System.currentTimeMillis
12、 (); repaint ();new Thread(this) .start (); )else if(e.getID() = MouseEvent.MOUSE_RELEASED) ( bStart = false;repaint ();)super.processMouseEvent(e);) public void paint(Graphics g) (SimpleDateFormat sdf= new SimpleDateFormatssn);Date elapsedTime =null;f.add(plCenter);plWest . setLayout(new GridLayout
13、(3,1);Button btnPrev = new Button(nprevn);plWest.add(btnPrev);Button btnNext = new Button(next);plWest . add(btnNext);Button btnThree = new Button(three);plWest.add(btnThree);plCenter.setLayout (cl);plCenter.add(new plCenter.add(new plCenter.add(new plCenter.add(new plCenter.add(newButton (nOnen) ,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 就业 培训 教程 第九 GUI
限制150内