Java语言程序设计 教学课件 PPT 作者 辛运帏 饶一梅 第八章

上传人:E**** 文档编号:89400432 上传时间:2019-05-24 格式:PPT 页数:50 大小:2.98MB
返回 下载 相关 举报
Java语言程序设计 教学课件 PPT 作者 辛运帏 饶一梅 第八章_第1页
第1页 / 共50页
Java语言程序设计 教学课件 PPT 作者 辛运帏 饶一梅 第八章_第2页
第2页 / 共50页
Java语言程序设计 教学课件 PPT 作者 辛运帏 饶一梅 第八章_第3页
第3页 / 共50页
Java语言程序设计 教学课件 PPT 作者 辛运帏 饶一梅 第八章_第4页
第4页 / 共50页
Java语言程序设计 教学课件 PPT 作者 辛运帏 饶一梅 第八章_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《Java语言程序设计 教学课件 PPT 作者 辛运帏 饶一梅 第八章》由会员分享,可在线阅读,更多相关《Java语言程序设计 教学课件 PPT 作者 辛运帏 饶一梅 第八章(50页珍藏版)》请在金锄头文库上搜索。

1、第8章 图形用户界面设计,图形用户界面,图形用户界面(Graphical User Interface,简称GUI)是人机交互接口,它是应用程序的外观。 Java语言提供了一套用来构建用户界面的组件(component),包括面板(Panel)、按钮(Button)、标签(Label)、画板(Canvases)、滚动条(Scrollbar)、列表框(List)、文本域(TextField)、文本区(TextArea)等。,AWT与Swing,早期的JDK版本中提供的是Java抽象窗口工具集(Abstract Window Toolkit,简称AWT),相应的组件定义在java.awt包中。 在

2、后续的JDK版本中,又提供了功能更强的Swing。 Swing属于JavaTM Foundation Classes(简称JFC)的一部分。Swing组件则定义在javax.swing包中。,AWT包,AWT中包含的主要类及相互的继承关系如图:,Swing包,Swing包中主要的类与继承关系如图所示,AWT包与Swing包,Swing对AWT的改进主要的是体现在平台无关性上。Swing称为轻量级(lightweight)组件,在实现时可以完全不依赖于本机环境。所以使用Swing组件的程序移植性更好。 AWT组件称为重量级(heavyweight)组件,是指它含有较多的本机代码,平台无关性不彻底

3、,不便于程序移植。,组件和容器,组件是构成图形用户界面最基本的元素。组件的级别是不同的,有些组件是最顶层的组件,可以在界面窗口内直接显示。有一些组件不能单独存在,它们必须被加入到某个组件中才能显示。能够容纳其他组件的组件称为容器(container),有了容器,就可以构造嵌套关系的组件架构,从而形成复杂的窗口界面。 设计程序时,最外层的组件必须是容器,这些容器称为顶层容器。Swing中共有四种顶层容器,分别为JFrame、JApplet、JDialog和JWindow。,窗口简单示例,程序8-1 窗口简单示例 import java.awt.*; import javax.swing.*; p

4、ublic class JFrameDemo1 public static void main(String args) JFrame frame = new JFrame(“JFrame“); /创建一个JFrame的实例 JButton button = new JButton(“A Frame“); /创建一个JButton的实例 /将JButton放到JFrame的中央 frame.getContentPane().add(button); frame.pack(); /将JFrame设置到适当的大小 frame.setVisible(true); /显示JFrame ,窗口简单示例,

5、该程序运行之后,弹出的窗口如图8-3所示,窗口中有一个按钮。,内容窗格,Swing的顶层容器是不能直接添加组件的。每个顶层容器都有一个内容窗格(Content Pane),也称为内容面板。除菜单之外的组件都需要放在这个内容窗格中,通过getContentPane()方法得到一个内容窗格。既可以直接调用顶层容器的add()方法,也可以调用内容窗格的add()方法来添加组件。 每种顶层容器都有默认的内容窗格,也可以创建一个新的内容窗格取代顶层容器默认的内容窗格。,内容窗格,当创建一个新的内容窗格时,通常的做法是创建面板JPanel的一个实例(JPanel是java.awt.Container的子类

6、),然后将组件添加到JPanel实例中,再通过顶层容器的setContentPane()方法将JPanel实例设置为新的内容窗格。 修改程序8-1,创建新的内容窗格并添加组件。(见下一页),内容窗格的完整程序,程序8-2创建新的内容窗格的完整程序 import java.awt.*; import javax.swing.*; public class JFrameDemo2 public static void main(String args) JFrame frame = new JFrame(“JFrameDemo2“); /创建一个JFrame的实例 JButton button =

7、 new JButton(“A Button“); /创建一个JButton的实例 JPanel contentPane = new JPanel(); /创建一个JPanel的实例 /为JPanel设置BorderLayout布局管理器 contentPane.setLayout(new BorderLayout(); /将JButton放到JPanel的中央 contentPane.add(button, BorderLayout.CENTER); /为JFrame设置新的内容窗格 frame.setContentPane(contentPane); frame.pack(); /将JFr

8、ame设置到适当的大小 frame.setVisible(true); /显示JFrame ,按钮,按钮是Java图形用户界面的基本组件之一,下图中显示的是最常用到的四种按钮,分别是JButton、JToggleButton、JCheckBox、JRadioButton,按钮,这些按钮类均是AbstractButton的子类或间接子类,各类之间的继承关系如图所示,按钮,Button是最简单的按钮,它的构造方法中可以指定在按钮上要显示的内容,既可以显示文本,也可以显示图标。 切换按钮(JToggleButton)具有两种状态,即选中状态和未选中状态,每次单击导致从一种状态变为另一种状态。构造方法

9、中如果没有指定按钮的初始状态,则默认地处于未选中状态。 上图中第二个按钮被单击过一次,为选中状态,第一个按钮未被单击过,为未选中状态,而第三个按钮被单击过两次,又回到未选中状态。,按钮,复选按钮(JCheckBox)允许同时选取多个选项,如图8-7中第一排的按钮所示。而单选按钮(JRadioButton)顾名思义,只允许在多种选择中选择一种,具有排他性,如图8-7中第二排的按钮所示。JCheckBox和JRadioButton都是JToggleButton的子类,构造方法的格式与JToggleButton相同,它们也都具有选中和未选中两种状态。,标签(JLabel),标签对象通常用于显示提示性

10、的内容,可以显示文本信息,也可以显示图标。构造方法中的int型参数horizontalAlignment用来指定显示的信息在水平方向上的对方方式,它的取值可以是JLabel.LEFT、JLabel.RIGHT和JLabel.CENTER等常量,分别表示左对齐、右对齐和居中。 可以分别使用setHorizontalAlignment(int alignment)方法和setVerticalAlignment(int alignment)方法改变标签内容的水平或垂直对齐方式。改变水平对齐方式时,alignment取值可为JLabel.LEFT、JLabel.RIGHT和 JLabel.CENTER

11、等常量,改变垂直对齐方式时,alignment取值可为JLabel.TOP、JLabel.BOTTOM和JLabel.CENTER等常量。,标签示例,JLabel label = new JLabel (“Hello”,JLabel.RIGHT); /构造一个以右对齐方式显示的标签 label.setHorizontalAlignment(JLabel.CENTER); /显示内容设置为水平居中 label.setVerticalAlignment(JLabel.BOTTOM); / 显示内容设置为底部对齐 label.setVerticalTextPosition(JLabel.BOTTOM

12、); /设置文本信息显示在图标的底部 label.setHorizontalTextPosition(JLabel.CENTER); /文本和图标都居中 在程序中,可以使用setText(String text)方法修改显示在标签上的文本信息,也可以使用setIcon(Icon icon)方法修改标签上的图标,但是在程序运行过程中,用户不能对标签内容进行修改。,组合框,组合框(JComboBox)是一个下拉式菜单。程序中当一个输入框中的值只有若干种选择的时候,可以将它们组织到组合框中,使用者只需要从中选择就可以了。 组合框分可编辑和不可编辑两种形式。对不可编辑的组合框,用户只能在现有的选项列表

13、中选择其中之一;而可编辑的组合框,用户既可以在现有选项中选择,也可以输入新的内容。,组合框常用方法,组合框中控制选项的方法: 例8-4 组合框示例 String itemList = “One“,“Two“,“Three“,“Four“,“Five“; JComboBox jcb = new JComboBox(itemList); /创建一个具有五个可选项的组合框,文本组件,Java提供了文本组件,专门用来处理输入较多文字的情况。文本组件既能显示信息,也可以接受用户的输入。 在Swing中有多个文本组件,如文本域(JTextField)、口令输入域(JPasswordField)、文本区(J

14、TextArea)等,它们有共同的基类JTextComponent。 文本域是一个单行的文本输入框,可用于输入少量文本。它的构造方法允许指定列数,也可以显示初始字符串。 文本区是一个多行多列的文本输入框,同样地,它允许程序员设定初始的字符串,也允许设定初始的行数和列数。,文本组件示例,例8-5 文本组件示例 /创建一个列数为30、有初始字符串的文本域 JTextField tf = new JTextField(“Single Line”,30); /创建一个4行30列、有初始字符串的文本区 JTextArea ta = new JTextArea(“Initial text”, 4, 30)

15、;,菜单组件,Swing包中提供了设计菜单时使用的多种组件,包括JMenuBar、JMenuItem、JMenu、JCheckBoxMenuItem、JRadioButtonMenuItem和JPopupMenu等,它们的继承关系如图所示,菜单示例,例8-6 菜单示例 /定义菜单栏 JFrame frame = new JFrame(“JMenuBar”); JMenuBar menubar = new JMenuBar(); /创建最上面一行的菜单 frame.setJMenuBar(menubar); /定义菜单 JMenu menu1 = new JMenu( “File“); /最上面

16、一行菜单的内容 JMenu menu2 = new JMenu( “Edit“); /第二项 menubar.add(menu1); /将菜单加入菜单栏中 menubar.add(menu2); /建立并添加菜单项 JMenuItem mi1 = new JMenuItem( “Save“); JMenuItem mi2 = new JMenuItem (“Load”); JMenuItem mi3 = new JMenuItem (“Quit”); menu1.add(mi1); /添加菜单项 menu1.add(mi2); menu1.addSeparator(); /添加分隔线 menu1.add(mi3);,特殊菜单项,除了普通的菜单项之外,还有两种特殊的菜单项,分别是复选菜单项和单选菜单项。复选菜单项的前面有一个方框,单选菜单项的前面有一个圆圈。这两类菜单项都可以选中或不选中,使用方法与复选按钮和单选按钮类似。 这两类特殊菜单项也可以显示文本和图标,同时

展开阅读全文
相关资源
相关搜索

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

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