第八章图形用户界面(Swing)方案课件.ppt
《第八章图形用户界面(Swing)方案课件.ppt》由会员分享,可在线阅读,更多相关《第八章图形用户界面(Swing)方案课件.ppt(70页珍藏版)》请在三一办公上搜索。
1、第八章 图形用户界面,8.1 Java的图形用户界面简介8.2 基本用户界面8.3 组件布局管理器8.4 事件处理8.5 高级图形用户界面,图形用户界面(GUI)是一种方便的人机界面,它通过图形的方式,借助菜单、按钮等图形界面组件和鼠标操作,在用户和计算机之间进行交互。构成GUI的基本要素是组件,组件分为基本的控制组件和容器。组件(component)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。组件一般作为一个对象放置在容器(Container)中。容器是能容纳和排列组件的组件,要显示组件,用户必须把它放置在容器里,通过容器的add()方法将组件加入到容器中
2、。容器本身也是组件,因此可以将一个容器添加到另一个容器中实现容器的嵌套。,8.1 Java的图形用户界面简介,Java的GUI功能主要包含在java.awt包和javax.swing包中。Java抽象窗口工具包AWT(Abstract Window Toolkit)是java图形界面的工具箱。其中有一些类不是使用java语言写的,因此并没有达到真正的平台独立。为了实现真正的平台独立,产生了Swing包。Swing完全用Java语言编写,Swing界面在不同的平台上外观完全一样,真正做到了平台独立。Swing提供了更完整的组件,引入了许多新的特性和功能。所有的Swing组件都以J开头,以便与老的
3、AWT组件区分。Swing包定义了顶层容器和其它容器两种类型的组件。JWindow、JFrame、JDialog和JApplet都是顶层容器,它们分别是容器Window、Frame、Dialog和Applet的子类;其它容器是由JComponent组件类派生的子类如JButton、JPanel和JMenu等。顶层容器和其它容器的区别是:它包含一个内容面板,Swing组件可以加入到内容面板里面,但不能直接加入到顶层容器中。,AWT是由下列包所组成的。,GUI接口的建立步骤 建立元件:在构造方法中,使用new()方法,通过构造方法的参数进行初始化。同时通过getContentPane获取容器的句柄
4、。加入容器中:在构造方法中,使用容器句柄.add(元件)将元件加入容器中。配置版面:在构造方法中,通过容器.setXXX(XXX),元件.setXXX(XXX),JFrame.setXXX(XXX)方法进行版面格式的配置。处理事件:在构造方法中,使用元件.addXXXListener()加入事件处理器。在构造方法外部定义事件处理器的功能。,8.2 基本用户界面,8.2.1 基本用户界面简介8.2.2 标签8.2.3 按钮8.2.4 选项框8.2.5 复选框和单选按钮8.2.6 列表框8.2.7 文本框8.2.8 文本区8.2.9 滚动条,8.2.1 基本用户界面简介,Swing基本组件都是JC
5、omponent类的子类,这些组件可独立存在于Applet和Application中,提供了小巧灵活的交互功能。JComponent类包含了一些方法来设置组件的属性,如:改变背景颜色、定义显示文本的字体等。JComponent的常用方法如下:,方 法 作 用 void setBackground(Color c)设置组件的背景颜色void setForeground(Color c)设置组件的前景颜色void setFont(Font f)设置组件的字体void isVisible()检查组件是否可见。组件初始为可见,但顶层容器JFrame是个例外void setVisible(boolean
6、 b)根据参数b的值显示或隐藏组件void setEnable(boolean b)启用或禁止一个组件(默认是可使用状态)void isEnable检查该组件是否正显示在容器中,void setLocation(int x,int y)或 设置组件的左上角位置。若组件为顶层容器,void setLocation(Point p)使用屏幕坐标;否则使用该容器的坐标Point getLocation()获得组件的左上角位置。Point getLocationOnScreen()获得组件左上角的位置。该值使用屏幕坐标void setSize(int width,int height)或 重新设置组件
7、的大小void setSize(Demension d)Dimension getSize()得到组件的当前大小viod setBounds(int x,int y,设置组件的大小。x,y设置组件在容器中的坐标,int width,int height)width,height设置组件的宽和高int getBounds().width获取组件的宽度int getBounds().height获取组件的高度int getBounds().x获取组件左上角的x坐标int getBounds().y获取组件左上角的y坐标void remove(Component c)移走容器中的组件cvoid re
8、moveAll()移走容器中的所有组件,8.2.2 标签(JLabel)标签是用户不能修改,只能察看的文本显示区域,它主要是显示单行的字符串,起着传递消息的功能。每一个标签用一个JLabel类的对象表示,创建标签的同时应该说明这个标签的字符串。1.创建标签JLabel label=new JLabel(“”);2.构造函数JLabel(String label);构造一个显示内容为label的标签JLabel(Icon icon);构造一个带有图标的标签JLabel(String label,int alignment);构造一个显示字符串label的标签,并指定它的对齐方式:LEFT(左对齐
9、)CENTER(居中对齐)RIGHT(右对齐)JLabel(String label,Icon icon,int alignment);用于构造一个带有指定文本、图标 和对齐方式的标签,3.常用方法 public int getAlignment()返回当前的对齐方式 public String getText()返回当前显示的内容 public Icon getIcon()返回标签的图标 public void setAlignment(int alignment)设置对齐方式 public void setText(String label)设置显示的字符串 public void set
10、Icon(Icon icon)设置标签的图标4.举例(LabelDemo.java)JApplet是一个顶层容器,Swing组建不能直接加入到JApplet,必须将组建加入到顶层容器的内容面板中。要获得一个内容面板,可使用getContentPane()方法,要设置它的内容面板可使用setContentPane()方法。,8.2.3 按钮(JButton)按钮(button)是用来触发特定动作的组件。在Java中提供多种形式的按钮,其中主要是鼠标单击触发的按钮。按钮类JButton直接继承组件类JComponent。1.创建按钮JButton button=new JButton(“”);2.
11、构造函数JButton();创建一个没有文本的按钮JButton(String label);创建一个有指定文本的按钮JButton(Icon icon);创建一个有显示图标的按钮JButton(String label,Icon icon);创建一个有指定文本和图标的按钮3.常用方法 public String getText()返回按钮的名字 public void setText(String label)为按钮设置名字 public Icon getIcon()返回按钮的图标 public void setIcon(Icon icon)为按钮设置图标,4.举例(ButtonDemo.j
12、ava),8.2.4 选项框 选项框分为复选框(JCheckBox)和单选按钮(JRadioButton),它们都有选中和不选中两种取值,可以通过点击来改变他们的状态。复选框可以让用户作出多项选则。单选按钮是一组按钮,用户只能从中选择一个。它们是具有开关或真假值状态的按钮。1.创建复选框JCheckBox checkBox=new JCheckbox();2.构造函数JCheckBox(String s);创建一个带有文本标签s的复选框JCheckBox(String s,boolean b);创建一个有标签的复选框。若b为true,表示复选框被选中JCheckBox(Icon icon);创
13、建一个带有图标的复选框JCheckBox(Icon icon,boolean b);创建一个有图标的复选框。若b为true,表示复选框被选中JCheckBox(String s,Icon icon);创建一个带有文本标签和图标的复选框JCheckBox(String s,Icon icon,boolean b);创建一个有标签和图标的复选框。若b为true,表示复选框被选中,3.常用方法 public boolean isSelected()返回复选框的状态 public void setSelected(boolean state)设置复选框的状态4.单选按钮(JRadioButton)单选
14、按钮的用法同复选框。由于单选按钮是在一组按钮中选择一个,所以要对单选按钮分组。为了创造单选按钮组,首先用类ButtonGroup创建按钮组对象,然后用add()方法将单选按钮加入到该按钮组中。5.举例(ChoiceDemo.java),8.2.5 组合框(JComboBox)组合框又称下拉列表框,是一个能从列表中选择某个单独项的组件。当用户点击它时,所有选项将被弹出,用户可从中做出选择。组合框分为可编辑和不可编辑的两种,默认为不可编辑,可使用setEditable(true)将其变为可编辑的,用户既可以从列表中选择也可以在附带的文本框中直接输入文本。1.创建组合框 首先使用构造方法JCombo
15、Box()创建组合框对象,然后调用方法addItem(Object)将表项加入到列表中。,8.2.5 组合框(JComboBox)2.常用方法void setEditable(boolean b)设置组合框的编辑状态(true为可编辑的,false为不可编辑的)void addItem(Object item)向列表中加入表项itemvoid insertItemAt(Object item,int index)将表项item插入到列表的指定位置void removeItem(Object item)从列表中删除表项itemvoid removeAllItems()删除列表中的所有表项Obje
16、ct getItemAt(int index)返回指定索引位置的表项的文本int getItemCount()返回列表中的表项数目int getSelectedIndex()返回当前选项的索引位置Object getSelectedItem(int index)返回当前被选中的表项void setSelectedIndex(int index)选中在指定索引位置的表项void setSelectedItem(Object)选中列表中的指定表项void setMaxinumRowCount(int max)设置一次能显示出来的列表行数3.举例(ComboBoxDemo.java),8.2.6 列
17、表框(JList)列表框(JList)可以使用户选择多个选项,而且列表框的所有选项都是可见的。1.创建列表框 建立一个列表框应首先建立一个字符串数组,然后将数组传递给JList构造器:String str=“green”,”red”,”blue”;JList list=new JList(str);当选项数目超过了列表框的可见区域的时候,列表框的右侧不会出现一个滚动条,不能提供自动滚动条功能。如果希望列表框能滚动,则需要将列表框加入到滚动面板中,滚动面板是能为其它组件提供滚动功能的容器。创建滚动面板可使用如下两种构造方法:JScrollPane(Component):创建一个包含组件的滚动面板
18、,默认情况下,如果组件没有超出面板本身大小,则滚动条不出现。JScrollPane(Component,int,int):创建一个带有组件、垂直滚动条配置和水平滚动条配置的滚动面板。可利用如下方法对滚动条进行配置:,8.2.6 列表框(JList)(1)HORIZONTAL_SCROLLBAR_ALWAYS:水平滚动条始终出现(2)HORIZONTAL_SCROLLBAR_AS_NEEDED:只有需要时,水平滚动条才出现(3)HORIZONTAL_SCROLLBAR_NEVER:水平滚动条不出现(4)VERTICAL_SCROLLBAR_ALWAYS:垂直滚动条始终出现(5)VERTICAL_
19、SCROLLBAR_AS_NEEDED:只有需要时,垂直滚动条才出现(6)VERTICAL_SCROLLBAR_NEVER:垂直滚动条不出现2.常用方法setVisibleRowCount(int n):设置列表框能显示的选项数。默认显示8个选项setSelectionMode(int mode):确定选择方式。参数mode有三种选择方式:SINGLE:单选SINGLE_INTERVAL_SELECTION:选一项或某个范围的多个相邻选项MULTIPLE_INTERVAL_SELECTION:多选Object getSelectedValue():返回选定的值,若选择方式为空,则返回nullg
20、etSelectedValues():返回选定的第一个值。如果选择方式为空,则返回Object一个空数组,3.举例(ListDemo.java),8.2.7 文本框(JTextField)文本框(JTextField)是单行的文本输入区域。1.创建文本框JTextField textField=new JTextField(“”);2.构造函数JTextField();构造一个默认长度的文本框JTextField(int n);创建一个能容纳n个字符的文本框JTextField(String text);创建一个带有初始字符串text的文本框JTextField(String text,int
21、 n);创建一个带有初始字符串并且能容纳指定长度的文本框3.常用方法 void setEditable(boolean)指定文本组件是否可编辑 boolean isEditable()返回文本组件是否可编辑的状态 void setText(String text)设置文本组件的文本内容 String getText()获取文本组件的文本内容 String getSelectedText()获取文本组件被高亮度显示的文本内容,4.密码框 文本框有一个特殊的子类JPasswordField,称为密码域,即口令文本框。在JPasswordField对象中输入的文本会被其它指定的字符所替代,密码域常用
22、来在Java程序中输入口令。密码域的构造方法为JPasswordField(String text,int n),其中text表示要显示的文本,n表示文本列数。创建一个密码域后可调用方法setEchoChar(char)设置用户输入字符的回显字符(默认为“*”),也可调用getPassword()返回密码域中的文本,存放在一个字符数组中。5.举例(TextFieldDemo.java),8.2.8 文本区(JTextArea)文本框只能显示一行内容,有时满足不了程序开发的需要,对于多行或大段文本的显示需要使用Java提供的文本区(JTextArea)来实现。1.创建文本区JTextArea t
23、a=new JTextArea();2.构造函数JTextArea();创建一个系统默认大小的文本区JTextArea(int row,int columns);创建一个指定行数和列数的文本区JTextArea(String text);创建一个包含初始内容的文本区JTextArea(String text,int row,int columns);创建一个包含初始内容并且指定行数和列数的文本区,3.常用方法 public void append(String str)在文本区的最后面添加文本 public int getRows()返回文本区的行数 public void setRowes(
24、int rows)设置文本区的行数 public int getColumns()返回文本区的列数 public void setColumns(int columns)设置文本区的列数 public void setLineWarp(boolean b)设置文本到达组件边界是否转到下一行(默认情况下,若文本区的文本超出显示范围,多余的文本就被剪掉)public void setWarpStyleWord(boolean b)若b为true,表示文本到达组件边界时,是从当前单词开始转到下一行;否则从当前字符转到下一行。在Swing中,文本区不含有水平、垂直滚动条。若需要滚动条,则需要将文本区加
25、入到滚动面板中,然后把滚动面板插入到内容面板中。4.举例(TextAreaDemo.java),8.2.9 滚动条(JScrollBar)滚动条(JScrollBar)是一种很直观而简单的控制组件。在Java语言中,它通常有两方面的用处:一方面将它作为滑块使用,根据其所代表的数据完成某些控制;另一方面是直接用它来实现窗口的滚动。创建滚动条时,必须要指定它的方向(垂直VERTICAL或水平HORIZONTAL,其中Java默认VERTICAL)、初始值、可见范围的宽度、最小值和最大值。滚动条的当前值是由getValue()来获取的,该方法返回一个整型数。1.构造方法JScrollBar(int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第八 图形 用户界面 Swing 方案 课件

链接地址:https://www.31ppt.com/p-3949786.html