第11章Swing图形用户界面编程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11.1.2 Swing的结构 Swing组件位于javax.swing包中,javax是Java的一个扩 展包。要想编写出更好的图形用户界面程序,必须理 解javax.swing包和 java.awt包中的继承层次,尤其是要 理解Component类、Container类和JComponent类间的 继承关系。这三个类声明了大多数Swing组件的通用特 性。
11.4.2按钮 按钮是图形用户界面中最常用的组件。Swing用JButton类来创建按钮 。当点击按钮时,按钮将处于“下压”形状,松开后又恢复原状。在 按钮中可以显示图标、字符串或两者同时显示。 按钮可以用如下三种方式创建。 方式一:JButton 对象名 = new JButton(String s); 方式二:JButton 对象名 = new JButton(ImageIcon image); 方式三:JButton 对象名 = new JButton(String s ,ImageIcon image); 方式一创建的按钮显示的信息是文字。方式二创建的按钮显示的信息 是图片。方式三创建的按钮显示的信息是文字和图片。
11.1.1 Swing简介 针对AWT存在的问题,Sun公司于1998年对其进行了扩展, 开发出了Swing图形用户界面,其组件包含在Javax.swing包 中。相对于AWT图形用户界面,Swing图形用户界面不仅改 进和增加了功能,而且减弱了平台相关性。 但是Swing并没有完全替代AWT,而是基于AWT之上。Swing 仅仅提供了能力更加强大的组件,但是在图形用户界面中 用到的布局管理器、事件处理等依然采用的是AWT的内容 。
11.4常用组件
Java Swing常用组件有:按钮、标签、图标、文本组
件、复选框、单选按钮、列表框、组合框等,在学习 这些组件之前,我们先通过下面的实例了解组件的使 用过程。 实例11-9 编程实现如图11-12的调查问卷。
11.4.1 标签
在窗口中经常会出现一些说明或提示性的信息,这些信息大多是文字 ,有时候也可能是图片。Java不允许将方字或图片直接显示在容器中 。这些文字或图片性质的信息要借助组件显示在窗口中。能够实现这 一功能的组件被称做标签。 JLabel是swing包中专门创建标签组件的类。 创建标签的方式有几种,这里介绍常用的四种。 方式一:JLabel 对象名 = new Jlabel(String s); 方式二:JLabel 对象名 = new Jlabel(String s,int hAlignment); 方式三:JLabel 对象名 = new Jlabel(ImageIcon image); 方式四:JLabel 对象名 = new Jlabel(ImageIcon image,int hAlignment);
11.1 Java Swing概述
Java从诞生到现在已经提供了两类图形用户界面: 一类是Java1.0发布时就包含的AWT(抽象窗口工具箱)图形用户 界面,AWT是Java图形用户界面的基础,为Java应用程序提供了基 本的图形组件,这些组件存放在java.awt包,对于简单的应用程序 来说,AWT的应用效果还可以,但是要想编写高质量、高性能、可 移植的图形用户界面却是很困难的,因为它的平台相关性强,使用 它创建的程序运行在不同的平台上会有不同的外观效果。 另一类是为了改进AWT图形界面中的不足,在AWT的基础上推出的 Swing图形用户界面。下面主要介绍Swing图形用户界面的相关知识 。
11.1.3 图形用户界面有关的术语 1.组件 构成图形用户界面的各种元素称为组件,用户可以通 过鼠标或键盘对它们进行操作。 2.容器 容器是图形用户界面中容纳组件的部分,一个容器可容 纳一个或多个组件,甚至可以容纳其他容器。窗口就是 一种容器。 3.布局管理器 在Java的图形用户界面中,有专门的类来管理组件的 布局,称这些类为布局管理器。
(5)设置窗口图标的方法:setIconImage(Image image) (6)设置窗口的缺省关闭方法 setDefaultCloseOperation(int operation) (7)向窗口中添加组件的方法 add(Component comp) (8)设置窗口是否可调的方法 setResizable(boolean b) (9)撤销当前窗口的方法 dispose() 实例11-1利用JFrame创建一个可视化不包含任何组件的空 窗口。
11.1.4 使用Swing进行程序设计的步骤 使用Swing开发GUI程序大体需要5个步骤,分别是: 引入swing包 设置顶层容器 设置布局方式 向容器中添加组件 进行事件处理
11.2常用容器
11.2.1顶层容器 顶层容器就是不包含在其他容器中的容器,Swing常用的顶 层容器有JFrame、JApplet、JDialog、JWindow共4个。其中 最常用的是JFrame。 1. JFrame类的构造方法 方式一:JFrame 对象名 = new JFrame(); 方式二:JFrame 对象名 = new JFrame(String s);
11.2.2中间容器 中间容器不能作为顶层容器,它必须放在其他容器中 。JPanel和JScrollPane是最常用的中间容器,通常称 为“面板”和“滚动面板” 1.Jpanel 创建JPanel的常用方式有如下两种: 方式一:JPanel 对象名 = new JPanel(); 方式二:JPanel 对象名 = new JPanel(布局管理器); 2. JScrollPane 实例11-2在窗口中加入JPanel容器,将窗口划分成两 个区域。
实例11-3流布局管理器的使用。
11.3.2 BorderLayout布局管理器 BorderLayout又称边界布局管理器,它将容器划分为上 北、下南、左西、右东和中央五个区域,分别用参数 BorderLayout.NORTH、BorderLayout.SOUTH、 BorderLayout.WEST、BorderLayout.EAST和 BorderLayout.CENTER来表示。在窗口中添加组件时, 系统会根据参数将组件摆放到窗口的相应位置。 BorderLayout是JFrame容器的默认布局管理器。当 JFrame容器中没有指定布局管理器时,系统就会默认 采用BorderLayout布局管理器。 实例11-5边界布局管理器的使用。
11.4.3复选框 复选框可以控制选项的开启或关闭状态。在复选框上单击时,可以改 变复选框的状态,复选框可以被单独使用或作为一组使用。复选框的 主要功能就是使用户可以进行多项选择。负责复选框功能的类是 JCheckBox。 复选框常用的创建方式有如下四种: 方式一:JCheckBox 对象名 = new JCheckBox(String s); 方式二:JCheckBox 对象名 = new JCheckBox(String s,boolean b); 方式三:JCheckBox 对象名 = new JCheckBox(ImageIcon image); 方式四:JCheckBox 对象名 = new JCheckBox(ImageIcon image, boolean b);
11.3.3 GridLayout布局管理器 GridLayout又称网格布局管理器。相对于FlowLayout和 BorderLayout来说,GridLayout布局管理器是比较灵活 的一种管理器。它可以通过行数和列数的设置,把容 器划分成若干个单元格,且每个单元格大小都一样。 在向其中添加组件的时候,组件将按照添加的顺序从 左到右,从上到下依次添加到相应的单元格里。 实例11-6网格布局管理器的使用。
11.4.4单选按钮 单选按钮可被选择或取消选择,并可为用户显示其状态。负责单选按 钮功能的类是JRadioButton。单选按钮一般成组出现,与按钮组( ButtonGroup)对象配合使用,一次只能选择其中的一个按钮。 创建单选按钮的常用方式有如下四种: 方式一:JRadioButton 对象名 = new JRadioButton(String s); 方式二:JRadioButton 对象名 = new JRadioButton(String s,boolean b); 方式三:JRadioButton 对象名 = new JRadioButton(ImageIcon image); 方式四:JRadioButton 对象名 = new JRadioButton(ImageIcon image, boolean b);
11.3 布局管理器
11.3.1 FlowLayout布局管理器
FlowLayout是将容器中的所有组件按照添加时的顺序从左到右,从上到下 流动的安排到容器中 。因此,它又被称为流布局管理器。 FlowLayout布局管理器是JPanel和JApplet容器的默认局管理器。如果不专 门对JPanel和JApplet进行布局管理器设置的话,添加到它们中的组件 将按FlowLayout进行管理。
第11章Swing图形用户界面编程 本章教学内容:
•11.1Java Swing概述 •11.2常用容器 •11.3布局管理器
•11.4常用组件
•11.5事件处理 •11.6菜单和工具栏
•11.7对话框
•11.8表格组件的使用 •11.9案例分析与实现(续8)
本章教学目标:
理解Java Swing的基本结构 掌握Java Swing容器的使用 掌握Java Swing常用布局的使用 掌握Java Swing常用组件的使用 熟练掌握Java Swing的事件处理机制 掌握菜单的创建及事件处理 了解工具栏的创建 了解对话框的种类及创建 学会使用文件对话框打开和保存文件 掌握JTable组件的简单用法
11.4.5列表框和组合框
列表框和组合框都能为用户提供多个选择项供用户选择,JList类提供
Βιβλιοθήκη Baidu
了列表框功能,JComboBox类提供了组合框功能。 常用的创建列表框的方式为: 方式一:JList 对象名 = new JList(); 方式二:JList 对象名 = new JList(JList(Object[] listData); 方式一用于创建一个没有选项的列表框。方式二用于创建一个列表框 ,其选项列表为对象数组中的元素。 常用的创建组合框的方式为: 方式一:JComboBox 对象名 = new JComboBox(); 方式二:JComboBox 对象名 = new JComboBox(Object[] listData); 方式一用于创建一个没有选项的组合框。方式二用于创建一个组合框 ,其选项列表为对象数组中的元素。
2. JFrame类常用方法介绍 (1)用于控制窗口大小的方法:setSize(w,h) (2)设置标题窗口的方法: setTitle(String s) (3)设置窗口前景色和背景色方法 setForeground(Color c) 。 setBackground(Color c) (4)显示窗口的方法 setVisible(boolean b)
11.3.4 CardLayout布局管理器 CardLayout又称为“卡片布局”,它将加入到容器的组 件看成一叠卡片,只能看到最上面的组件。通过调用 CardLayout的一些方法,才能显示其中的组件。 实例11-7卡片布局管理器的使用。
11.3.5 自定义布局管理器 这种方法的理念是这样的:所有图形用户界面都是平面的 ,界面上的每个点都可以用x和y两个坐标来确定。在一个 界面上如果选取一个点,再确定好要摆放组件的宽度和高 度,就可以确定出一个区域。 实例11-8 自定义布局管理器使用。