Java程序设计第13章-图形用户界面GUIppt课件.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《Java程序设计第13章-图形用户界面GUIppt课件.pptx》由会员分享,可在线阅读,更多相关《Java程序设计第13章-图形用户界面GUIppt课件.pptx(87页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1313图 形 用 户 界 面Java程序设计第章导读Introduction图形用户界面设计是程序设计的重要组成部分,Java语言提供了丰富的组件来完成界面设计,并通过事件机制实现功能处理。C目录ONTENTS13.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 抽象窗口工具集AWTComponentLabelButtonContainerCheckBoxChoiceTextComponentCanvasWindowPanelTextFieldTextAreaFrameDialogAppletAWT的Component类结构13.1.1 抽象窗口工具集AWTAWT由下面几部分组成:l Component(组件):按钮、标签、菜单等组件。l Container(容器):扩展组件的抽象类Window、Panel、Frame等。l LayoutManager(布局管理器):定义容器中各
3、组件的放置位置和大小等。l Graphics(图形类):与图形处理相关的类。AWT的缺点是重量级组件,耗费资源多;图形用户界面依赖于本地系统,失去了统一的风格。13.1.2 Swing组件l Swing组件是在AWT组件基础上发展而来的轻量级组件。l 它提供了AWT所能提供的所有功能并进行了扩充。l 组件均用Java语言进行开发。l 界面风格统一,更为美观。l 组件都放在javax.swing包中。13.1.2 Swing组件JLabelJListAbstractButtonJMenuBarJTableJPanelJTextComponentJTreeJOptionPaneComponentW
4、indowJComponentFrameDialogContainerJFrameJDialogJButtonJToggleButtonJMenuItemJTextAreaJEditorPaneJTextFieldJComponent部分类层次关系13.1.3 组件与事件l Java是以组件的形式进行界面设计的。l 界面中的每一个组成部分都是一个组件,如按钮、菜单、文本框、窗口等。l 这些组件直接或间接继承自Component类。l Container容器类是一个特殊的组件,它用于承载和显示其他组件。l 其他组件按照一定的顺序或位置装入容器,才能够显示和使用。13.1.3 组件与事件GUI事件
5、处理机制。 组件在容器中不能够直接工作,需要与完成的功能连接起来,才能实现具体的功能,这就是Java的事件机制。 在事件机制下,一个事件分为事件源、监听器和事件处理程序。 监听器用于监听事件源。一个监听器可以监听多个事件源。 监听器对象监听到事件源发生的事件后,就通知相应的事件处理程序完成对应的功能,从而实现一次事件的处理。C目录ONTENTS13.2 窗口13.3 常用组件与布局13.6 小结13.1 图形用户界面概述13.4 事件处理13.5 对话框13.2.1 JFrame类JFrame(窗口)类是Container(容器)类的间接子类。一个JFrame对象就是一个窗口,可以容纳其他组件
6、。JFrame类的常用方法:类型方法名功能 JFrame()构造一个初始时不可见的窗口 JFrame(String title)创建一个初始不可见的、指定标题的窗口voidsetTitle(String title)设置窗口标题栏的内容voidsetSize(int width,int height)设置窗口的大小voidsetRisizable(boolean r)设置是否可以改变窗口大小13.2.1 JFrame类类型方法名功能voidsetVisible(boolean v)设置窗口是否可见,默认不可见voidsetLocation(int x,int y)设置窗口的位置(窗口左上角坐标
7、)voidsetLocationRelativeTo(null)设置窗口居中显示ContainergetContentPane()获取内容面板voidsetDefaultCloseOperation(int o)设置在此窗口上发起 close 时默认执行的操作。13.2.1 JFrame类【例13.1】创建一个新窗口,定义该窗口大小为300*200,初始化位置为200*200,并且大小不可调整。Example13_01.java【例13.2】通过继承方式创建一个新窗口Example13_02.java 13.2.2 窗口菜单一个窗口菜单由多个组件共同构成。JMenuBar(菜单条),用于创建一
8、个菜单条。一个窗口中只能有一个菜单条,并且只能添加到窗口顶端。Frame添加JMenuBar的方法是:1、JMenuBar类setJMenuBar(JMenuBar menubar) JMenu(菜单)类,用于创建菜单。一个菜单条中可以添加多个菜单对象。一个菜单中可以添加另一个菜单,实现菜单的嵌套。JMenu类的常用构造方法:JMenu(String s)13.2.2 窗口菜单2、JMenu类 JMenuItem(菜单项)类用于创建菜单项,每一个菜单中可以包含多个菜单项。JMenuItem类的常用构造方法: JMenuItem(String text) JMenuItem(String tex
9、t,Icon icon)13.2.2 窗口菜单3、JMenuItem类【例13.3】创建一个带有菜单的窗口。Example13_03.javaC目录ONTENTS13.2 窗口13.3 常用组件与布局13.6 小结13.1 图形用户界面概述13.4 事件处理13.5 对话框 13.3.1 常用组件JButton类用于创建普通按钮。常用的构造方法:1、JButton按钮类public JButton(String text) public JButton(String text,Icon icon) JRadioButton类用于创建单选按钮。JRadiaoButton类的构造方法:2、JRad
10、ioButton单选按钮类和ButtonGroup按钮作用域类public JRadioButton(String text)public JRadioButton(String text,boolean selected) 13.3.1 常用组件构造方法:public ButtonGroup()ButtonGroup按钮作用域类用于确定单选按钮的作用域。同一个域中只能有一个单选按钮处于选中状态。创建域对象后,调用add(AbstractButton b)方法将单选按钮加入到指定作用域中。 2、JRadioButton单选按钮类和ButtonGroup按钮作用域类13.3.1 常用组件3、JC
11、heckBox复选框 JCheckBox类用于创建复选框。构造方法:JCheckBox(String text)JCheckBox(String text,boolean selected)4、JLabel标签 JLabel类用于创建显示短文本字符串或图像的标签。常用的构造方法:JLabel()JLabel(String text)JLabel(String text,Icon icon,int horizontalAlignment) 13.3.1 常用组件JTextField类用于创建编辑单行字符串的文本框。常用的构造方法:5、JTextField文本框JTextField(String
12、text)JTextField(String text,int columns) JPasswordField类功能与JTextField类相同。不同之处:输入内容时不直接显示,而是用“*”或“”代替。常用的构造方法:6、JPasswordField密码框JPasswordField(String text)JPasswordField(String text,int columns) 13.3.1 常用组件JTextArea(String text)JTextArea(int rows,int columns)JTextArea(String text,int rows,int column
13、s)JTextArea类用于创建显示多行文本的文本区。常用构造方法:JScrollPane类属于容器,用于创建一个滚动条视图。与TextArea类配合,当文本区内容超出显示范围时显示滚动条。(详见13.3.2节)7、JTextArea文本区JScrollPane滚动条视图13.3.1 常用组件【例13.4】常用组件的使用。Example13_04.java13.3.2 常用容器Java提供了多种容器为程序设计所使用。 容器可分为三类:l 顶层容器,包括JFrame、JDialog、JApplet、JWindow。l 普通容器,包括JPanel、JScrollPane、JSplitPane、JT
14、abbedPane、JOptionPane。l 特殊容器,包括JInternalFrame、JLayeredPane、JRootPane、JToolBar。 13.3.2 常用容器【例13.5】JWindow的简单显示。Example13_05.java1、JwindowJWindow也是顶层容器,只有一个空白界面,不具有标题栏和窗口管理按钮。 【例13.5】运行结果13.3.2 常用容器2、JPanel3、JScrollPane JPanel类,Java中最常用的轻量级容器之一,默认布局管理器是FlowLayout。JPanel可以容纳其他组件,之间可以嵌套,但本身不可见,需要加入到顶层容器
15、。常用构造方法:JTextField(String text)JTextField(String text,int columns) JScrollPane提供轻量级组件的 Scrollable 视图用于管理滚动条。用于TextArea文本框中,它不支持重量级组件。常用构造方法:JScrollPane()JScrollPane(Component view) 13.3.2 常用容器public JSplitPane(int orientation,Component left,Component right)public JSplitPane(int orientation,boolean c
16、,Component left,Component right)JSplitPane用于将容器拆分成两个部分,每个部分各放一个组件。容器拆分时可以水平拆分和垂直拆分,中间的拆分线可以进行移动。常用构造方法:参数orientation为JSplitPane.HORIZONTAL_SPLIT(水平分割)或 JSplitPane.VERTICAL_SPLIT(垂直分割),left为放在左边(或上边)的组件,right为放在右边(或下边)的组件;参数c为true表示拆分线移动时组件跟着连续变化,为false则拆分线停止移动组件再发生变化。 4、JSplitPane 13.3.3 常用布局每个容器使用布
17、局管理器对存放其中的组建进行位置、大小的管理。使用布局管理器后,组件在容器中的大小和位置完全由布局管理器控制和管理,程序员不需要也不能再对组件的位置和大小进行控制。每一种容器都有默认的布局管理器。可以用setLayout()方法重新设置布局管理器。13.3.3 常用布局java.awt.FlowLayout是流式布局管理器。把所有组件行进行排列,一行满了后自动排到下一行。组件的显示位置随着窗口的缩放而发生变化,但顺序不变。位置与添加顺序密切相关,使用时要按一定的顺序进行添加。它是JPanel的默认布局管理器。构造方法:1、FlowLayout public FlowLayout()public
18、 FlowLayout(int align,int hgap,int vgap)参数align:FlowLayout.LEFT(左对齐)、FlowLayout.RIGHT(右对齐)、FlowLayout.CENTER(居中对齐)、FlowLayout.LEADING(与容器方向开始边对齐)和FlowLayout.TRAILING(与容器结束边对齐)。13.3.3 常用布局【例13.6】FlowLayout应用举例Example13_06.java【例13.6】运行结果13.3.3 常用布局java.awt.BorderLayout称为边框布局管理器,把一个容器分成五个区域,这五个区域分别是东西
19、南北中。五个区域的常量标识为:EAST、WEST、SOUTH、NORTH、CENTER。BorderLayout是JFrame的默认布局管理器。构造方法:2、BorderLayout public BorderLayout()public BorderLayout(int hgap,int vgap)13.3.3 常用布局2、BorderLayout 【例13.7】BorderLayout应用举例。Example13_07.java【例13.6】运行结果13.3.3 常用布局java.awt.GridLayout称为网格布局管理器,它将容器划分成网格结构,每一个网格中可以放置一个组件。所有组件
20、的大小都相同,均填充满整个网格。这些组件按照添加顺序从左到右,从上到下加入到网格中并显示。构造方法:3、GridLayout public GridLayout()public GridLayout(int rows,int cols)public GridLayout(int rows,int cols,int hgap,int vgap)参数rows和cols可以有一个值为零,表示可以将任意数量的对象置于行中或列中。13.3.3 常用布局3、GridLayout 【例13.8】GridLayout应用举例,简单电话拨号界面设计。根据按键的分布情况,首先定义一个3行4列的网格,然后在每个网格
21、单元中添加一个相应的按键。Example13_08.java13.3.3 常用布局java.awt.GridBagLayout称为网格包布局管理器,不需要组件大小相同就可以按水平、垂直或沿着基线对齐。GridBagLayout中的组件可以占用一个或多个网络单元格,但这些组件的具体放置位置和放置方式需要通过GridBagConstraints类的实例进行设置。GridBagLayout的构造方法:4、GridBagLayout public GridBagConstraints()public GridBagConstraints(int gridx,int gridy,int gridwidt
22、h,int gridheight, double weightx,double weighty,int anchor,int fill, Insets insets, int ipadx,int ipady) public GridBagLayout()GridBagConstraints的构造方法: 13.3.3 常用布局4、GridBagLayout【例13.9】利用GridBagLayout布局,设计一个简单计算器。在这个界面中,按钮“=”需要占用两行一列,按钮“0”需要占用一列两行。Example13_09.java13.3.3 常用布局java.awt.CardLayout称为卡片布
23、局管理器。把添加的每个组件像卡片一样叠加在一起,每次只显示最上面的一个组件。卡片的顺序由组件对象本身在容器内部的顺序决定。CardLayout 定义了一组方法,这些方法允许应用程序按顺序地浏览这些卡片,或者显示指定的卡片。5、CardLayout13.3.3 常用布局5、CardLayoutCardLayout类的常用方法类型方法名功能CardLayout()创建一个间距为0的卡片布局CardLayout(int hgap,int gap)创建一个具有水平间距和垂直间距的卡片布局voidfirst(Container parent)翻转到容器的第一张卡片voidnext(Container p
24、arent)翻转到指定容器的下一张卡片voidprevious(Container parent)翻转到指定容器的前一张卡片。如果当前可见卡片是第一个,则翻到最后一张voidlast(Container parent)翻转到容器的最后一张卡片voidshow(Container arent,String name)显示指定name的组件 13.3.3 常用布局javax.swing.BoxLayout称为盒式布局管理器。允许以水平或垂直方向布置多个组件,这些组件排在一行或一列。BoxLayout是Box容器的默认布局管理器。构造方法:public BoxLayout(Container tar
25、get,int axis)axis为布置组件时使用的轴,常用的值有BoxLayout.X_AXIS(指定组件从左到右排在一排)和BoxLayout.Y_AXIS(指定组件从上到下排在一列)。在实际应用中,多使用 Box 类的静态方法设置布局,而不是直接使用 BoxLayout。6、BoxLayout13.3.3 常用布局6、BoxLayout【例13.10】BoxLayout应用举例,设计一个简单的用户注册界面。Example13_10.java【例13.10】运行结果13.3.3 常用布局容器使用setLayout(null)方法将布局设为空。添加进入容器的组件使用setBounds(int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 13 图形 用户界面 GUIppt 课件
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内