JAVA程序设计PPT课件 第8章

上传人:清晨86****784 文档编号:213903531 上传时间:2021-11-22 格式:PPT 页数:110 大小:631KB
返回 下载 相关 举报
JAVA程序设计PPT课件 第8章_第1页
第1页 / 共110页
JAVA程序设计PPT课件 第8章_第2页
第2页 / 共110页
JAVA程序设计PPT课件 第8章_第3页
第3页 / 共110页
JAVA程序设计PPT课件 第8章_第4页
第4页 / 共110页
JAVA程序设计PPT课件 第8章_第5页
第5页 / 共110页
点击查看更多>>
资源描述

《JAVA程序设计PPT课件 第8章》由会员分享,可在线阅读,更多相关《JAVA程序设计PPT课件 第8章(110页珍藏版)》请在金锄头文库上搜索。

1、第8章图形用户界面设计 Java图形用户界面(GUI)设计主要涉及AWT,Swing两大类库,Swing是AWT的扩展和功能加强。8.1.2 Swing类层次结构Swing软件包(也叫SwingAPI)提供了开发GUI所需的所有组件,SwingAPI除了有最常用的javax.swing包和javax.swing.event包外,还有javax.swing.border包,javax.swing.text包,javax.swing.table包,javax.swing.tree包和javax.swing.filechooser包等。 Swing组件都是AWT的Container类的直接子类或间接

2、子类。关系如图8.1。 -java.lang.Object -java.awt.Component -java.awt.Container -java.awt.Window -java.awt.Frame-javax.Swing.JFrame -javax.Dialog-javax.Swing.JDialog -javax.Swing.JWindow -java.awt.Applet-javax.Swing.JApplet -javax.Swing.Box-javax.Swing.JComponet 图8.1Swing类层次关系 由此可见Object类是上述所有类的超类,Component类是

3、Object类的子类,Container类是Component的子类,JComponent类又是Container类的子类。 其中JComponent类是大多数Swing组件的超类,Swing中几乎所有组件都是从Jcomponent类继承而来,但以下几个组件不是由JComponent继承而来:JFrame、JDialog、Jwindow和JApplet,Swing中的JFrame类继承原有AWT中的Frame类,而不是继承JComponent类。同样,JApplet类继承原有AWT中的JApplet类,也不是继承JComponent类。 为了方便大家对GUI编程有个初步的了解,下面用一个简单的

4、例子来说明。 见例8.1 程序运行结果如下所示.程序说明:程序的第1行引入所需的软件包javax.swing.*(这里不需要javax.swing.event.*);第4行创建一个顶级容器JFrame;第5行创建一个基本组件Label标签用来显示文本信息;第6行先调用getContentPane方法得到顶层容器的一个内容面板,再用add方法将标签加进去(在AWT中可直接使用add方法添加组件); 第7行调用setDefaultCloseOperation方法(JFrame.EXIT_ON_CLOSE是参数)使点击窗口右上角的关闭按钮能完整的退出程序;第8行中的pack方法用来自动的设定窗口的大

5、小,另一个设定窗口大小的方法是setSize,利用它可以由编程者人为的指定窗口的大小,如将该行内容改为frame.setSize(300,200)设定窗口大小为宽300,高200,单位为像素;第9行的setVisible(true)方法使窗口能显示在屏幕上,与该方法等价的是show()方法,二者选其一使用即可。 8.2 Swing组件与容器 8.2.1 Swing组件概述 Swing的组件类型繁多,为了方便使用,可按功能分类如下。 (1)顶层容器:包括JFrame、JApplet、JDialog和JWindow,分别用于设计框架、小应用程序、对话框和窗体,其中JWindow是AWT的Windo

6、w类的Swing版本,但没有多大用处。它们位于包体系的顶部,所有的GUI组件都包含在顶层容器里。 (2)中间容器:包括JPanel,JScrollPane,JSplitPane,JTabbedPane和JToolBar等,中间容器可以添加在顶层容器中,也可以容纳其他组件,介于顶层组件和原子组件之间。 (3)特殊容器:在GUI上起特殊作用的中间层,包括JInternalFrame,JLayeredPane,JRootPane等,它们也是中间容器,但有着特殊的作用。 (4)基本组件:实现人机交互的组件,包括JButton,JComboBox,JList,JMenu,JSlider,JCheckBo

7、x,JList和JTextComponent等。 上面列出的常用Swing组件,随后几节将详细讨论。 8.2.2 顶层容器 组件必须加在容器中,而容器本身具有层次性的关系. 因此若想在JFrame上加入任何组件时,必须先取得JFrame的容器来放置这些组件。由于JFrame、JDialog、JWindow与JApplet是显示Swing组件的根组件,所以称它们为顶层容器。 以JFrame为例,顶层容器和其他容器的区别在于:它包含一个内容面板,Swing组件可以加入到内容面板里,但不能直接加入到顶层容器中。 其中内容面板是Container类的一个对象,向Frame中添加组件首先要用getCon

8、tentPane()方法获得JFrame的内容面板,再使用add方法向内容面板中添加其他组件。例如向窗体对象frame中添加一个标签label组件,使用如下语句:frame.getContentPane().add(label);(请见例8.1第6行)。 例2的运行结果就是一个什么东西都没有加的框架,也就是一个空窗口,见图8.3。说明: 显示一个窗口只需要做三件事:生成实例(对象)-设置大小-显示,即程序中的第5,8和9行代码。 按默认的规定,当用户关闭窗口后,窗口消失(隐藏),但仍然存在,程序还在运行,例2中使用setDefaultCloseOperation方法来实现结束程序的运行,该方法

9、需使用下面参数之一: DO_NOTHING_ON_CLOSE: HIDE_ON_CLOSE: DISPOSE_ON_CLOSE: EXIT_ON_CLOSE: 创建JFrame窗口可使用其构造方法JFrame()JFrame(String str),后一个构造方法中参数为窗口的标题。JFrame的一些其它方法有:setTitle(String str):设置窗口标题;setIconImage(Image image):设置窗口的图标;setResizable(Boolean boolean):设置窗口是否可自动调整大小(默认为可调整);setSize(int width,int height)

10、:设置窗口的宽度和高度;setBounds(int x,int y,int width,int height):设置窗口左上角的坐标和窗口宽度和高度;pack():用紧凑方式自动设定窗口大小。 8.3 标签与按钮 8.3.1 标签(JLabel) 标签用来显示提示或信息。标签除可以显示文本外,也可以显示图标。 标签类JLabel是JComponent类的子类,用于创建标签。 一共有六个构造方法,分别是: JLabel() JLabel(Icon image) JLabel(Icon image,int horizontalAlignment) JLabel(String text) JLabe

11、l(String text,Icon icon,int horizontalAlignment) JLabel(String text,int horizontalAlignment) 其中不带参数的构造方法是创建一个没有文字和图标的空白标签,参数text和image用来设置标签的显示内容,horizontalAlignment用来指明标签内容(包括文本和图标)在水平方向的对齐方式,应为JLabel.LEFT/CENTER/RIGHT/LEADING/TRAILING中的一种。 标签内容的对齐方式可以通过调用setHorizontalAlignment(intalign)和setVertica

12、lAlignment(intalign)来设定和修改。通过调用setText(Stringtext)和setIcon(Iconicon)来设定标签的文本和图标,图标可用的文件后缀名包括.gif、.png和.jpg。 例3介绍了标签的使用. 见例3 程序运行效果如下.说明: 程序创建一个LabelDemo类,是JFrame的子类,继承了JFrame类的通用的方法和特征;第10行创建内容面板Container对象cp;第19到21行是向内容面板cp中添加标签组件,其中add方法中的第二个字符串参数是用来设定窗口中的显示布局,分别将标签显示在窗口的顶部,中部和底部,这里使用默认的边界布局管理器(可参

13、见第8.6节内容)。 当标签只含有文本时,其默认的对齐方式是左对齐;只含图标时,默认为中间对齐。调用标签的setToolTipText方法可以使当鼠标停留在标签上时,自动弹出一行提示信息,如图中显示的“第三个JLabel标签”。另外运行该程序后,我们发现标签并没有明显的边界显示。 8.3.2 按钮(JButton) 按钮JButton类是AbstractButton类(javax.swing包)的子类,用于创建命令按钮。它常用的构造方法有: JButton(Icon icon):按钮上显示图标; JButton(String text):按钮上显示文本; JButton(String text

14、, Icon icon) :按钮上既显示图标又显示文本。 按钮上显示的文本相对于图标的上下和左右对齐方式可以分别用setVerticalTextPosition和setHorizontalTextPosition方法来设定,方法的参数分别为AbstractButton.TOP/CENTER/BOTTOM和AbstractButton.LEFT/CENTER/RIGHT,默认的参数值是CENTER和RIGHT。 下面创建一个JButton类的button对象,文本居中显示,图标显示在文本正上方。 JButton button = new JButton(“显示图标的按钮”,new ImageIc

15、on(“images/left.gif”); button.setVerticalTextPosition(AbstractButton. BOTTOM);/去掉则文字和图标重合 button.setHorizontalTextPosition(AbstractButton.CENTER);/设置文本居中对齐 使用setEnabled方法可指定按钮的状态,若参数为true,按钮可操作,参数为false时,按纽不可操作,默认状态为有效可操作状态。判断一个按钮是否处于有效状态使用isEnabled方法。除此还可以为按钮设置快捷键,方法是setMnemonic,参数是KeyEvent.VK_X,其中

16、VK_后面的字母X代表键盘上的键(大写),例如:VK_C指定快捷键ALT+C。 当用户单击命令按钮时,它将产生一个ActionEvent事件,该动作事件在actionPerformed方法中处理,用getSource方法来返回产生事件的对象(事件源)。关于Java的事件处理将在下一节中详细介绍。 见例4学习按钮的使用.说明: 第4行定义ButtonDemo类,并声明该类将实现ActionListener接口。第6行声明一个JButton类对象button;ButtonDemo的构造函数将按钮和对象实例化;第12行创建ImageIcon对象buttonIcon;第13行使用JButton构造方法创建一个包含文本和图标的按钮;第15和16行分别设置按钮文本相对于图标的上下和左右对齐方式为居中和左对齐;第17行设置按钮快捷键为ALT+M;第18行为按钮注册监听器,当用户单击按钮时触发动作事件(ActionEvent);事件处理程序在actionPerformed方法中实现;第20行设置窗口布局为流式布局(组件从左到右依次排列)。按钮在显示效果上与标签非常相似,它们具有许多共同的方法。更多的方

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号