Java语言程序设计-辛运帏-饶一梅-第八章新课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Java语言程序设计-辛运帏-饶一梅-第八章新课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 辛运帏 饶一梅 第八 新课
- 资源描述:
-
1、JAVA程序设计程序设计人民邮电出版社人民邮电出版社第第8章章 图形用户界面设计图形用户界面设计2022-6-232图形用户界面图形用户界面图形用户界面(Graphical User Interface,简称GUI)是人机交互接口,它是应用程序的外观。 Java语言提供了一套用来构建用户界面的组件(component),包括面板(Panel)、按钮(Button)、标签(Label)、画板(Canvases)、滚动条(Scrollbar)、列表框(List)、文本域(TextField)、文本区(TextArea)等。 2022-6-233AWT与与Swing 早期的JDK版本中提供的是Jav
2、a抽象窗口工具集(Abstract Window Toolkit,简称AWT),相应的组件定义在java.awt包中。在后续的JDK版本中,又提供了功能更强的Swing。Swing属于JavaTM Foundation Classes(简称JFC)的一部分。Swing组件则定义在javax.swing包中。 2022-6-234AWT包包 AWT中包含的主要类及相互的继承关系如图:2022-6-235Swing包包Swing包中主要的类与继承关系如图所示2022-6-236AWT包与包与Swing包包 Swing对AWT的改进主要的是体现在平台无关性上。Swing称为轻量级(lightweig
3、ht)组件,在实现时可以完全不依赖于本机环境。所以使用Swing组件的程序移植性更好。AWT组件称为重量级(heavyweight)组件,是指它含有较多的本机代码,平台无关性不彻底,不便于程序移植。2022-6-237组件和容器组件和容器组件是构成图形用户界面最基本的元素。组件的级别是不同的,有些组件是最顶层的组件,可以在界面窗口内直接显示。有一些组件不能单独存在,它们必须被加入到某个组件中才能显示。能够容纳其他组件的组件称为容器(container),有了容器,就可以构造嵌套关系的组件架构,从而形成复杂的窗口界面。设计程序时,最外层的组件必须是容器,这些容器称为顶层容器。Swing中共有四种
4、顶层容器,分别为JFrame、JApplet、JDialog和JWindow。2022-6-238窗口简单示例窗口简单示例程序8-1 窗口简单示例 import java.awt.*; import javax.swing.*; public class JFrameDemo1 public static void main(String args) JFrame frame = new JFrame(JFrame);/创建一个JFrame的实例 JButton button = new JButton(A Frame);/创建一个JButton的实例 /将JButton放到JFrame的中央
5、 frame.getContentPane().add(button); frame.pack();/将JFrame设置到适当的大小 frame.setVisible(true);/显示JFrame 2022-6-239窗口简单示例窗口简单示例该程序运行之后,弹出的窗口如图8-3所示,窗口中有一个按钮。2022-6-2310内容窗格内容窗格 Swing的顶层容器是不能直接添加组件的。每个顶层容器都有一个内容窗格(Content Pane),也称为内容面板。除菜单之外的组件都需要放在这个内容窗格中,通过getContentPane()方法得到一个内容窗格。既可以直接调用顶层容器的add()方法,
6、也可以调用内容窗格的add()方法来添加组件。每种顶层容器都有默认的内容窗格,也可以创建一个新的内容窗格取代顶层容器默认的内容窗格。2022-6-2311内容窗格内容窗格当创建一个新的内容窗格时,通常的做法是创建面板JPanel的一个实例(JPanel是java.awt.Container的子类),然后将组件添加到JPanel实例中,再通过顶层容器的setContentPane()方法将JPanel实例设置为新的内容窗格。修改程序8-1,创建新的内容窗格并添加组件。(见下一页)2022-6-2312内容窗格的完整程序内容窗格的完整程序程序8-2创建新的内容窗格的完整程序 import java
7、.awt.*; import javax.swing.*; public class JFrameDemo2 public static void main(String args) JFrame frame = new JFrame(JFrameDemo2);/创建一个JFrame的实例 JButton button = new JButton(A Button);/创建一个JButton的实例 JPanel contentPane = new JPanel();/创建一个JPanel的实例 /为JPanel设置BorderLayout布局管理器 contentPane.setLayout(
8、new BorderLayout(); /将JButton放到JPanel的中央 contentPane.add(button, BorderLayout.CENTER); /为JFrame设置新的内容窗格 frame.setContentPane(contentPane); frame.pack();/将JFrame设置到适当的大小 frame.setVisible(true);/显示JFrame 2022-6-2313按钮按钮 按钮是Java图形用户界面的基本组件之一,下图中显示的是最常用到的四种按钮,分别是JButton、JToggleButton、JCheckBox、JRadioBut
9、ton 2022-6-2314按钮按钮这些按钮类均是AbstractButton的子类或间接子类,各类之间的继承关系如图所示 2022-6-2315按钮按钮Button是最简单的按钮,它的构造方法中可以指定在按钮上要显示的内容,既可以显示文本,也可以显示图标。切换按钮(JToggleButton)具有两种状态,即选中状态和未选中状态,每次单击导致从一种状态变为另一种状态。构造方法中如果没有指定按钮的初始状态,则默认地处于未选中状态。上图中第二个按钮被单击过一次,为选中状态,第一个按钮未被单击过,为未选中状态,而第三个按钮被单击过两次,又回到未选中状态。 2022-6-2316按钮按钮复选按钮(
10、JCheckBox)允许同时选取多个选项,如图8-7中第一排的按钮所示。而单选按钮(JRadioButton)顾名思义,只允许在多种选择中选择一种,具有排他性,如图8-7中第二排的按钮所示。JCheckBox和JRadioButton都是JToggleButton的子类,构造方法的格式与JToggleButton相同,它们也都具有选中和未选中两种状态。2022-6-2317标签(标签(JLabel) 标签对象通常用于显示提示性的内容,可以显示文本信息,也可以显示图标。构造方法中的int型参数horizontalAlignment用来指定显示的信息在水平方向上的对方方式,它的取值可以是JLabe
11、l.LEFT、JLabel.RIGHT和JLabel.CENTER等常量,分别表示左对齐、右对齐和居中。 可以分别使用setHorizontalAlignment(int alignment)方法和setVerticalAlignment(int alignment)方法改变标签内容的水平或垂直对齐方式。改变水平对齐方式时,alignment取值可为JLabel.LEFT、JLabel.RIGHT和 JLabel.CENTER等常量,改变垂直对齐方式时,alignment取值可为JLabel.TOP、JLabel.BOTTOM和JLabel.CENTER等常量。 2022-6-2318标签示例
12、标签示例JLabel label = new JLabel (“Hello”,JLabel.RIGHT);/构造一个以右对齐方式显示的标签label.setHorizontalAlignment(JLabel.CENTER);/显示内容设置为水平居中label.setVerticalAlignment(JLabel.BOTTOM);/ 显示内容设置为底部对齐label.setVerticalTextPosition(JLabel.BOTTOM);/设置文本信息显示在图标的底部label.setHorizontalTextPosition(JLabel.CENTER);/文本和图标都居中在程序中
13、,可以使用setText(String text)方法修改显示在标签上的文本信息,也可以使用setIcon(Icon icon)方法修改标签上的图标,但是在程序运行过程中,用户不能对标签内容进行修改。2022-6-2319组合框组合框 组合框(JComboBox)是一个下拉式菜单。程序中当一个输入框中的值只有若干种选择的时候,可以将它们组织到组合框中,使用者只需要从中选择就可以了。组合框分可编辑和不可编辑两种形式。对不可编辑的组合框,用户只能在现有的选项列表中选择其中之一;而可编辑的组合框,用户既可以在现有选项中选择,也可以输入新的内容。 2022-6-2320组合框常用方法组合框常用方法 组
14、合框中控制选项的方法:例8-4 组合框示例 String itemList = One,Two,Three,Four,Five; JComboBox jcb = new JComboBox(itemList); /创建一个具有五个可选项的组合框方法名功能addItem(Object anObject)在末尾位置添加新的可选项insertItemAt(Object anObject, int index)在index指定的位置添加新的可选项anObjectr e m o v e I t e m ( O b j e c t anObject)删除由anObject指定的可选项2022-6-2321
15、文本组件文本组件 Java提供了文本组件,专门用来处理输入较多文字的情况。文本组件既能显示信息,也可以接受用户的输入。在Swing中有多个文本组件,如文本域(JTextField)、口令输入域(JPasswordField)、文本区(JTextArea)等,它们有共同的基类JTextComponent。 文本域是一个单行的文本输入框,可用于输入少量文本。它的构造方法允许指定列数,也可以显示初始字符串。文本区是一个多行多列的文本输入框,同样地,它允许程序员设定初始的字符串,也允许设定初始的行数和列数。 2022-6-2322文本组件示例文本组件示例例8-5 文本组件示例/创建一个列数为30、有初
16、始字符串的文本域JTextField tf = new JTextField(“Single Line”,30);/创建一个4行30列、有初始字符串的文本区JTextArea ta = new JTextArea(“Initial text”, 4, 30);2022-6-2323菜单组件菜单组件 Swing包中提供了设计菜单时使用的多种组件,包括JMenuBar、JMenuItem、JMenu、JCheckBoxMenuItem、JRadioButtonMenuItem和JPopupMenu等,它们的继承关系如图所示2022-6-2324菜单示例菜单示例例8-6 菜单示例 /定义菜单栏 JF
17、rame frame = new JFrame(“JMenuBar”); JMenuBar menubar = new JMenuBar(); /创建最上面一行的菜单 frame.setJMenuBar(menubar); /定义菜单 JMenu menu1 = new JMenu( File);/最上面一行菜单的内容 JMenu menu2 = new JMenu( Edit);/第二项 menubar.add(menu1); /将菜单加入菜单栏中 menubar.add(menu2); /建立并添加菜单项 JMenuItem mi1 = new JMenuItem( Save); JMen
18、uItem mi2 = new JMenuItem (“Load”); JMenuItem mi3 = new JMenuItem (“Quit”); menu1.add(mi1);/添加菜单项 menu1.add(mi2); menu1.addSeparator();/添加分隔线 menu1.add(mi3);2022-6-2325特殊菜单项特殊菜单项除了普通的菜单项之外,还有两种特殊的菜单项,分别是复选菜单项和单选菜单项。复选菜单项的前面有一个方框,单选菜单项的前面有一个圆圈。这两类菜单项都可以选中或不选中,使用方法与复选按钮和单选按钮类似。这两类特殊菜单项也可以显示文本和图标,同时可以在
19、构造方法中用boolean型参数指定菜单项的初始状态。例如: JCheckBoxMenuItem mi1 = new JCheckBoxMenuItem (“Persistent”);/未选中 JCheckBoxMenuItem mi2 = new JCheckBoxMenuItem (“transient”,true);/选中上述命令构造两个复选菜单项,一个显示“Persistent”、初态为未选中,另一个显示“transient”、初态为选中。2022-6-2326对话框对话框 对话框有3类 普通对话框 标准对话框 文件对话框对话框(JDialog)是一个可移动窗口,它能够被设置为“模式(
展开阅读全文