Java程序设计第13章 图形用户界面GUIppt课件.pptx
《Java程序设计第13章 图形用户界面GUIppt课件.pptx》由会员分享,可在线阅读,更多相关《Java程序设计第13章 图形用户界面GUIppt课件.pptx(87页珍藏版)》请在三一办公上搜索。
1、,导读,Introduction,图形用户界面设计是程序设计的重要组成部分,Java语言提供了丰富的组件来完成界面设计,并通过事件机制实现功能处理。,C,目录,ONTENTS,13.2 窗口,13.3 常用组件与布局,13.6 小结,13.1 图形用户界面概述,13.4 事件处理,13.5 对话框,13.1.1 抽象窗口工具集AWT,图形用户界面(Graphic User Interface,GUI)是实现人机交互的窗口。Java早期提供的AWT包(Abstract Window Toolkit,AWT)中包括了图形用户界面设计的基本类库,它是Java设计GUI的核心,为用户提供基本的界面组件
2、。这些类都放在了java.awt包中。,13.1.1 抽象窗口工具集AWT,AWT的Component类结构,13.1.1 抽象窗口工具集AWT,AWT由下面几部分组成:Component(组件):按钮、标签、菜单等组件。Container(容器):扩展组件的抽象类Window、Panel、Frame等。LayoutManager(布局管理器):定义容器中各组件的放置位置和大小等。Graphics(图形类):与图形处理相关的类。,AWT的缺点是重量级组件,耗费资源多;图形用户界面依赖于本地系统,失去了统一的风格。,13.1.2 Swing组件,Swing组件是在AWT组件基础上发展而来的轻量级
3、组件。它提供了AWT所能提供的所有功能并进行了扩充。组件均用Java语言进行开发。界面风格统一,更为美观。组件都放在javax.swing包中。,13.1.2 Swing组件,JLabel,JList,AbstractButton,JMenuBar,JTable,JPanel,JTextComponent,JTree,JOptionPane,Component,Window,JComponent,Frame,Dialog,Container,JFrame,JDialog,JButton,JToggleButton,JMenuItem,JTextArea,JEditorPane,JTextFie
4、ld,JComponent部分类层次关系,13.1.3 组件与事件,Java是以组件的形式进行界面设计的。界面中的每一个组成部分都是一个组件,如按钮、菜单、文本框、窗口等。这些组件直接或间接继承自Component类。Container容器类是一个特殊的组件,它用于承载和显示其他组件。其他组件按照一定的顺序或位置装入容器,才能够显示和使用。,13.1.3 组件与事件,GUI事件处理机制。组件在容器中不能够直接工作,需要与完成的功能连接起来,才能实现具体的功能,这就是Java的事件机制。在事件机制下,一个事件分为事件源、监听器和事件处理程序。监听器用于监听事件源。一个监听器可以监听多个事件源。监
5、听器对象监听到事件源发生的事件后,就通知相应的事件处理程序完成对应的功能,从而实现一次事件的处理。,C,目录,ONTENTS,13.2 窗口,13.3 常用组件与布局,13.6 小结,13.1 图形用户界面概述,13.4 事件处理,13.5 对话框,13.2.1 JFrame类,JFrame(窗口)类是Container(容器)类的间接子类。一个JFrame对象就是一个窗口,可以容纳其他组件。JFrame类的常用方法:,13.2.1 JFrame类,13.2.1 JFrame类,【例13.1】创建一个新窗口,定义该窗口大小为300*200,初始化位置为200*200,并且大小不可调整。Exam
6、ple13_01.java,【例13.2】通过继承方式创建一个新窗口Example13_02.java,13.2.2 窗口菜单,一个窗口菜单由多个组件共同构成。,JMenuBar(菜单条),用于创建一个菜单条。一个窗口中只能有一个菜单条,并且只能添加到窗口顶端。Frame添加JMenuBar的方法是:,1、JMenuBar类,setJMenuBar(JMenuBar menubar),JMenu(菜单)类,用于创建菜单。一个菜单条中可以添加多个菜单对象。一个菜单中可以添加另一个菜单,实现菜单的嵌套。JMenu类的常用构造方法:,JMenu(String s),13.2.2 窗口菜单,2、JMe
7、nu类,JMenuItem(菜单项)类用于创建菜单项,每一个菜单中可以包含多个菜单项。JMenuItem类的常用构造方法:,JMenuItem(Stringtext) JMenuItem(Stringtext,Iconicon),13.2.2 窗口菜单,3、JMenuItem类,【例13.3】创建一个带有菜单的窗口。Example13_03.java,C,目录,ONTENTS,13.2 窗口,13.3 常用组件与布局,13.6 小结,13.1 图形用户界面概述,13.4 事件处理,13.5 对话框,13.3.1 常用组件,JButton类用于创建普通按钮。常用的构造方法:,1、JButton按
8、钮类,public JButton(String text) public JButton(String text,Icon icon),JRadioButton类用于创建单选按钮。JRadiaoButton类的构造方法:,2、JRadioButton单选按钮类和ButtonGroup按钮作用域类,public JRadioButton(String text)public JRadioButton(String text,boolean selected),13.3.1 常用组件,构造方法:,public ButtonGroup(),ButtonGroup按钮作用域类用于确定单选按钮的作用域
9、。同一个域中只能有一个单选按钮处于选中状态。,创建域对象后,调用add(AbstractButton b)方法将单选按钮加入到指定作用域中。,2、JRadioButton单选按钮类和ButtonGroup按钮作用域类,13.3.1 常用组件,3、JCheckBox复选框,JCheckBox类用于创建复选框。构造方法:,JCheckBox(String text)JCheckBox(String text,boolean selected),4、JLabel标签,JLabel类用于创建显示短文本字符串或图像的标签。常用的构造方法:,JLabel()JLabel(String text)JLabe
10、l(String text,Icon icon,int horizontalAlignment),13.3.1 常用组件,JTextField类用于创建编辑单行字符串的文本框。常用的构造方法:,5、JTextField文本框,JTextField(String text)JTextField(String text,int columns),JPasswordField类功能与JTextField类相同。不同之处:输入内容时不直接显示,而是用“*”或“”代替。常用的构造方法:,6、JPasswordField密码框,JPasswordField(String text)JPasswordFie
11、ld(String text,int columns),13.3.1 常用组件,JTextArea(String text)JTextArea(int rows,int columns)JTextArea(String text,int rows,int columns),JTextArea类用于创建显示多行文本的文本区。常用构造方法:,JScrollPane类属于容器,用于创建一个滚动条视图。与TextArea类配合,当文本区内容超出显示范围时显示滚动条。(详见13.3.2节),7、JTextArea文本区JScrollPane滚动条视图,13.3.1 常用组件,【例13.4】常用组件的使用
12、。Example13_04.java,13.3.2 常用容器,Java提供了多种容器为程序设计所使用。 容器可分为三类:顶层容器,包括JFrame、JDialog、JApplet、JWindow。普通容器,包括JPanel、JScrollPane、JSplitPane、JTabbedPane、JOptionPane。特殊容器,包括JInternalFrame、JLayeredPane、JRootPane、JToolBar。,13.3.2 常用容器,【例13.5】JWindow的简单显示。Example13_05.java,1、Jwindow,JWindow也是顶层容器,只有一个空白界面,不具有
13、标题栏和窗口管理按钮。,13.3.2 常用容器,2、JPanel,3、JScrollPane,JPanel类,Java中最常用的轻量级容器之一,默认布局管理器是FlowLayout。JPanel可以容纳其他组件,之间可以嵌套,但本身不可见,需要加入到顶层容器。常用构造方法:,JTextField(String text)JTextField(String text,int columns),JScrollPane提供轻量级组件的 Scrollable 视图用于管理滚动条。用于TextArea文本框中,它不支持重量级组件。常用构造方法:,JScrollPane()JScrollPane(Comp
14、onent view),13.3.2 常用容器,public JSplitPane(int orientation,Component left,Component right)public JSplitPane(int orientation,boolean c,Component left,Component right),JSplitPane用于将容器拆分成两个部分,每个部分各放一个组件。容器拆分时可以水平拆分和垂直拆分,中间的拆分线可以进行移动。常用构造方法:,参数orientation为JSplitPane.HORIZONTAL_SPLIT(水平分割)或 JSplitPane.VER
15、TICAL_SPLIT(垂直分割),left为放在左边(或上边)的组件,right为放在右边(或下边)的组件;参数c为true表示拆分线移动时组件跟着连续变化,为false则拆分线停止移动组件再发生变化。,4、JSplitPane,13.3.3 常用布局,每个容器使用布局管理器对存放其中的组建进行位置、大小的管理。使用布局管理器后,组件在容器中的大小和位置完全由布局管理器控制和管理,程序员不需要也不能再对组件的位置和大小进行控制。每一种容器都有默认的布局管理器。可以用setLayout()方法重新设置布局管理器。,13.3.3 常用布局,java.awt.FlowLayout是流式布局管理器。
16、把所有组件行进行排列,一行满了后自动排到下一行。组件的显示位置随着窗口的缩放而发生变化,但顺序不变。位置与添加顺序密切相关,使用时要按一定的顺序进行添加。它是JPanel的默认布局管理器。构造方法:,1、FlowLayout,public FlowLayout()public FlowLayout(int align,int hgap,int vgap),参数align:FlowLayout.LEFT(左对齐)、FlowLayout.RIGHT(右对齐)、FlowLayout.CENTER(居中对齐)、FlowLayout.LEADING(与容器方向开始边对齐)和FlowLayout.TRAI
17、LING(与容器结束边对齐)。,13.3.3 常用布局,【例13.6】FlowLayout应用举例Example13_06.java,13.3.3 常用布局,java.awt.BorderLayout称为边框布局管理器,把一个容器分成五个区域,这五个区域分别是东西南北中。五个区域的常量标识为:EAST、WEST、SOUTH、NORTH、CENTER。BorderLayout是JFrame的默认布局管理器。构造方法:,2、BorderLayout,public BorderLayout()public BorderLayout(int hgap,int vgap),13.3.3 常用布局,2、B
18、orderLayout,【例13.7】BorderLayout应用举例。Example13_07.java,13.3.3 常用布局,java.awt.GridLayout称为网格布局管理器,它将容器划分成网格结构,每一个网格中可以放置一个组件。所有组件的大小都相同,均填充满整个网格。这些组件按照添加顺序从左到右,从上到下加入到网格中并显示。构造方法:,3、GridLayout,public GridLayout()public GridLayout(int rows,int cols)public GridLayout(int rows,int cols,int hgap,int vgap),
19、参数rows和cols可以有一个值为零,表示可以将任意数量的对象置于行中或列中。,13.3.3 常用布局,3、GridLayout,【例13.8】GridLayout应用举例,简单电话拨号界面设计。根据按键的分布情况,首先定义一个3行4列的网格,然后在每个网格单元中添加一个相应的按键。Example13_08.java,13.3.3 常用布局,java.awt.GridBagLayout称为网格包布局管理器,不需要组件大小相同就可以按水平、垂直或沿着基线对齐。GridBagLayout中的组件可以占用一个或多个网络单元格,但这些组件的具体放置位置和放置方式需要通过GridBagConstrai
20、nts类的实例进行设置。GridBagLayout的构造方法:,4、GridBagLayout,public GridBagConstraints()public GridBagConstraints(intgridx,intgridy,intgridwidth,intgridheight, doubleweightx,doubleweighty,intanchor,intfill, Insetsinsets, intipadx,intipady),public GridBagLayout(),GridBagConstraints的构造方法:,13.3.3 常用布局,4、GridBagLayo
21、ut,【例13.9】利用GridBagLayout布局,设计一个简单计算器。在这个界面中,按钮“=”需要占用两行一列,按钮“0”需要占用一列两行。Example13_09.java,13.3.3 常用布局,java.awt.CardLayout称为卡片布局管理器。把添加的每个组件像卡片一样叠加在一起,每次只显示最上面的一个组件。卡片的顺序由组件对象本身在容器内部的顺序决定。CardLayout 定义了一组方法,这些方法允许应用程序按顺序地浏览这些卡片,或者显示指定的卡片。,5、CardLayout,13.3.3 常用布局,5、CardLayout,CardLayout类的常用方法,13.3.3
22、 常用布局,javax.swing.BoxLayout称为盒式布局管理器。允许以水平或垂直方向布置多个组件,这些组件排在一行或一列。BoxLayout是Box容器的默认布局管理器。构造方法:public BoxLayout(Container target,int axis)axis为布置组件时使用的轴,常用的值有BoxLayout.X_AXIS(指定组件从左到右排在一排)和BoxLayout.Y_AXIS(指定组件从上到下排在一列)。在实际应用中,多使用 Box 类的静态方法设置布局,而不是直接使用 BoxLayout。,6、BoxLayout,13.3.3 常用布局,6、BoxLayout
23、,【例13.10】BoxLayout应用举例,设计一个简单的用户注册界面。Example13_10.java,【例13.10】运行结果,13.3.3 常用布局,容器使用setLayout(null)方法将布局设为空。添加进入容器的组件使用setBounds(int x,int y,int width,int height)方法指定该组件在容器中的位置和大小。,7、null(空布局),【例13.11】null(空布局)应用举例,在窗口中构造一个围棋的棋盘。Example13_11.java,【例13.11】运行结果,C,目录,ONTENTS,13.2 窗口,13.3 常用组件与布局,13.6 小
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java程序设计第13章 图形用户界面GUIppt课件 Java 程序设计 13 图形 用户界面 GUIppt 课件
链接地址:https://www.31ppt.com/p-1376287.html