Java语言程序设计教学第八章.ppt
《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),相应的组件定义在
2、java.awt包中。在后续的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
4、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的中央 frame.getContentPane().add(button);frame.pack();/将JFrame设置到适当的大小 frame.setVisible(true);/显示JFrame 窗口简单示例窗
5、口简单示例该程序运行之后,弹出的窗口如图8-3所示,窗口中有一个按钮。内容窗格内容窗格 Swing的顶层容器是不能直接添加组件的。每个顶层容器都有一个内容窗格(Content Pane),也称为内容面板。除菜单之外的组件都需要放在这个内容窗格中,通过getContentPane()方法得到一个内容窗格。既可以直接调用顶层容器的add()方法,也可以调用内容窗格的add()方法来添加组件。每种顶层容器都有默认的内容窗格,也可以创建一个新的内容窗格取代顶层容器默认的内容窗格。内容窗格内容窗格当创建一个新的内容窗格时,通常的做法是创建面板JPanel的一个实例(JPanel是java.awt.Con
6、tainer的子类),然后将组件添加到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 b
7、utton=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();/将JFrame设置到
8、适当的大小 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);/创建一个具有五个可选项的组合框方法名功能addItem(Object anObject)在末尾位置添加新的可选项insertItemAt(Object anObject,int index)在index指定的位置添加新的可选项anObjectremoveItem(Object anObject)删除由anObject
14、指定的可选项文本组件文本组件 Java提供了文本组件,专门用来处理输入较多文字的情况。文本组件既能显示信息,也可以接受用户的输入。在Swing中有多个文本组件,如文本域(JTextField)、口令输入域(JPasswordField)、文本区(JTextArea)等,它们有共同的基类JTextComponent。文本域是一个单行的文本输入框,可用于输入少量文本。它的构造方法允许指定列数,也可以显示初始字符串。文本区是一个多行多列的文本输入框,同样地,它允许程序员设定初始的字符串,也允许设定初始的行数和列数。文本组件示例文本组件示例例8-5 文本组件示例/创建一个列数为30、有初始字符串的文本
15、域JTextField tf=new JTextField(“Single Line”,30);/创建一个4行30列、有初始字符串的文本区JTextArea ta=new JTextArea(“Initial text”,4,30);菜单组件菜单组件 Swing包中提供了设计菜单时使用的多种组件,包括JMenuBar、JMenuItem、JMenu、JCheckBoxMenuItem、JRadioButtonMenuItem和JPopupMenu等,它们的继承关系如图所示菜单示例菜单示例例8-6 菜单示例 /定义菜单栏 JFrame frame=new JFrame(“JMenuBar”);J
16、MenuBar 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);JMenuItem mi2=new JMenuItem(“Load”);JMenuItem mi3=new JMen
17、uItem(“Quit”);menu1.add(mi1);/添加菜单项 menu1.add(mi2);menu1.addSeparator();/添加分隔线 menu1.add(mi3);特殊菜单项特殊菜单项除了普通的菜单项之外,还有两种特殊的菜单项,分别是复选菜单项和单选菜单项。复选菜单项的前面有一个方框,单选菜单项的前面有一个圆圈。这两类菜单项都可以选中或不选中,使用方法与复选按钮和单选按钮类似。这两类特殊菜单项也可以显示文本和图标,同时可以在构造方法中用boolean型参数指定菜单项的初始状态。例如:JCheckBoxMenuItem mi1=new JCheckBoxMenuItem(
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 教学 第八