欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第八章图形用户界面(Swing)方案课件.ppt

    • 资源ID:3949786       资源大小:371KB        全文页数:70页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第八章图形用户界面(Swing)方案课件.ppt

    第八章 图形用户界面,8.1 Java的图形用户界面简介8.2 基本用户界面8.3 组件布局管理器8.4 事件处理8.5 高级图形用户界面,图形用户界面(GUI)是一种方便的人机界面,它通过图形的方式,借助菜单、按钮等图形界面组件和鼠标操作,在用户和计算机之间进行交互。构成GUI的基本要素是组件,组件分为基本的控制组件和容器。组件(component)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。组件一般作为一个对象放置在容器(Container)中。容器是能容纳和排列组件的组件,要显示组件,用户必须把它放置在容器里,通过容器的add()方法将组件加入到容器中。容器本身也是组件,因此可以将一个容器添加到另一个容器中实现容器的嵌套。,8.1 Java的图形用户界面简介,Java的GUI功能主要包含在java.awt包和javax.swing包中。Java抽象窗口工具包AWT(Abstract Window Toolkit)是java图形界面的工具箱。其中有一些类不是使用java语言写的,因此并没有达到真正的平台独立。为了实现真正的平台独立,产生了Swing包。Swing完全用Java语言编写,Swing界面在不同的平台上外观完全一样,真正做到了平台独立。Swing提供了更完整的组件,引入了许多新的特性和功能。所有的Swing组件都以J开头,以便与老的AWT组件区分。Swing包定义了顶层容器和其它容器两种类型的组件。JWindow、JFrame、JDialog和JApplet都是顶层容器,它们分别是容器Window、Frame、Dialog和Applet的子类;其它容器是由JComponent组件类派生的子类如JButton、JPanel和JMenu等。顶层容器和其它容器的区别是:它包含一个内容面板,Swing组件可以加入到内容面板里面,但不能直接加入到顶层容器中。,AWT是由下列包所组成的。,GUI接口的建立步骤 建立元件:在构造方法中,使用new()方法,通过构造方法的参数进行初始化。同时通过getContentPane获取容器的句柄。加入容器中:在构造方法中,使用容器句柄.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基本组件都是JComponent类的子类,这些组件可独立存在于Applet和Application中,提供了小巧灵活的交互功能。JComponent类包含了一些方法来设置组件的属性,如:改变背景颜色、定义显示文本的字体等。JComponent的常用方法如下:,方 法 作 用 void setBackground(Color c)设置组件的背景颜色void setForeground(Color c)设置组件的前景颜色void setFont(Font f)设置组件的字体void isVisible()检查组件是否可见。组件初始为可见,但顶层容器JFrame是个例外void setVisible(boolean 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)或 重新设置组件的大小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 removeAll()移走容器中的所有组件,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(左对齐)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 setIcon(Icon icon)设置标签的图标4.举例(LabelDemo.java)JApplet是一个顶层容器,Swing组建不能直接加入到JApplet,必须将组建加入到顶层容器的内容面板中。要获得一个内容面板,可使用getContentPane()方法,要设置它的内容面板可使用setContentPane()方法。,8.2.3 按钮(JButton)按钮(button)是用来触发特定动作的组件。在Java中提供多种形式的按钮,其中主要是鼠标单击触发的按钮。按钮类JButton直接继承组件类JComponent。1.创建按钮JButton button=new JButton(“”);2.构造函数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.java),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);创建一个带有图标的复选框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)单选按钮的用法同复选框。由于单选按钮是在一组按钮中选择一个,所以要对单选按钮分组。为了创造单选按钮组,首先用类ButtonGroup创建按钮组对象,然后用add()方法将单选按钮加入到该按钮组中。5.举例(ChoiceDemo.java),8.2.5 组合框(JComboBox)组合框又称下拉列表框,是一个能从列表中选择某个单独项的组件。当用户点击它时,所有选项将被弹出,用户可从中做出选择。组合框分为可编辑和不可编辑的两种,默认为不可编辑,可使用setEditable(true)将其变为可编辑的,用户既可以从列表中选择也可以在附带的文本框中直接输入文本。1.创建组合框 首先使用构造方法JComboBox()创建组合框对象,然后调用方法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()删除列表中的所有表项Object 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 列表框(JList)列表框(JList)可以使用户选择多个选项,而且列表框的所有选项都是可见的。1.创建列表框 建立一个列表框应首先建立一个字符串数组,然后将数组传递给JList构造器:String str=“green”,”red”,”blue”;JList list=new JList(str);当选项数目超过了列表框的可见区域的时候,列表框的右侧不会出现一个滚动条,不能提供自动滚动条功能。如果希望列表框能滚动,则需要将列表框加入到滚动面板中,滚动面板是能为其它组件提供滚动功能的容器。创建滚动面板可使用如下两种构造方法:JScrollPane(Component):创建一个包含组件的滚动面板,默认情况下,如果组件没有超出面板本身大小,则滚动条不出现。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_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():返回选定的值,若选择方式为空,则返回nullgetSelectedValues():返回选定的第一个值。如果选择方式为空,则返回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 n);创建一个带有初始字符串并且能容纳指定长度的文本框3.常用方法 void setEditable(boolean)指定文本组件是否可编辑 boolean isEditable()返回文本组件是否可编辑的状态 void setText(String text)设置文本组件的文本内容 String getText()获取文本组件的文本内容 String getSelectedText()获取文本组件被高亮度显示的文本内容,4.密码框 文本框有一个特殊的子类JPasswordField,称为密码域,即口令文本框。在JPasswordField对象中输入的文本会被其它指定的字符所替代,密码域常用来在Java程序中输入口令。密码域的构造方法为JPasswordField(String text,int n),其中text表示要显示的文本,n表示文本列数。创建一个密码域后可调用方法setEchoChar(char)设置用户输入字符的回显字符(默认为“*”),也可调用getPassword()返回密码域中的文本,存放在一个字符数组中。5.举例(TextFieldDemo.java),8.2.8 文本区(JTextArea)文本框只能显示一行内容,有时满足不了程序开发的需要,对于多行或大段文本的显示需要使用Java提供的文本区(JTextArea)来实现。1.创建文本区JTextArea ta=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(int rows)设置文本区的行数 public int getColumns()返回文本区的列数 public void setColumns(int columns)设置文本区的列数 public void setLineWarp(boolean b)设置文本到达组件边界是否转到下一行(默认情况下,若文本区的文本超出显示范围,多余的文本就被剪掉)public void setWarpStyleWord(boolean b)若b为true,表示文本到达组件边界时,是从当前单词开始转到下一行;否则从当前字符转到下一行。在Swing中,文本区不含有水平、垂直滚动条。若需要滚动条,则需要将文本区加入到滚动面板中,然后把滚动面板插入到内容面板中。4.举例(TextAreaDemo.java),8.2.9 滚动条(JScrollBar)滚动条(JScrollBar)是一种很直观而简单的控制组件。在Java语言中,它通常有两方面的用处:一方面将它作为滑块使用,根据其所代表的数据完成某些控制;另一方面是直接用它来实现窗口的滚动。创建滚动条时,必须要指定它的方向(垂直VERTICAL或水平HORIZONTAL,其中Java默认VERTICAL)、初始值、可见范围的宽度、最小值和最大值。滚动条的当前值是由getValue()来获取的,该方法返回一个整型数。1.构造方法JScrollBar(int style):创建一个指定方向的滚动条,JScrollBar.HORIZONTAL 为水平滚动条,JScrollBar.VERTICAL为垂直滚动条。JScrollBar(int style,int initvalue,int shumbsize,int min,int max):五个参数分别表示 方向、初始值、滚动快的大小、最小值和最大值。2.常用方法int getValue()获得滚动条的当前值void setValue(int)设置滚动条的当前值,3.举例(ScrollBarDemo.java),8.3 组件布局管理器,用容器的add()方法将组件添加到容器中后,并没有对这些组件的位置进行设置。容器里组件的位置和大小由布局管理器决定,每个容器都有自己的默认布局方式,可通过容器的setLayout()方法重设容器的布局方式。,1.顺序布局(FlowLayout)顺序布局是面板JPanel的默认布局方式,将组件从左至右摆放,当一行摆满后就转到下一行继续摆放。当用户对由Flow布局管理的区域进行缩放时,布局就发生变化。举例(FlowLayoutDemo.java),2.边界布局(BorderLayout)边界布局是顶层容器JWindow、JFrame、JDialog、JApplet的默认布局方式,将容器分为东、南、西、北、中五个区域,这几个区按照“上北下南、左西右东”的分布规律进行布局,组件可以指定自己放在哪个区域。因为只有5个区,所以最多只能容纳5个组件。当窗口缩放时,组件相应的位置不变化,但其大小改变。可用语句setLayout(new BorderLayout();设置容器的布局为边界布局。void add(String s,Component comobj)其中:s指定组件加入的位置(North,South,East,West,Center)comobj表示要加入的组件。,举例(BorderLayoutDemo.java),3.网格布局(GridLayout)网格布局是在一个二维网格中布置组件,须定义行数和列数。网格布局适合于数量较多的组件。向网格中添加组件的顺序是先向第一行第一格中添加第一个组件,然后是第一行第二格等等,第一行全部添加完毕后,开始第二行的添加,以此类推。组件的相应位置不随区域的缩放而改变,只是组件的大小改变。可用下面的语句设置容器的布局为网格布局:setLayout(new GridLayout(int row,int col);举例(GridLayoutDemo.java),4.网格包布局(GridBagLayout)网格包布局是网格布局的一个扩展,网格布局中所有组件被布局管理器设为默认大小,且大小相同;而网格包布局可排列大小不同的组件,只需指定组件占用的单元即可。GridBagLayout语句可将容器的布局方式设置为网格包布局,具体步骤如下:(1)创建一个GridBagLayout对象,并调用setLayout方法将该对象指定为布局管理器;(2)创建网格包约束对象GridBagConstraints,此对象用来设定组件在布局中的属性(如位置、大小等);(3)用setConstraint方法将网格包约束条件传给布局管理器,最后添加组件。setConstraint方法的格式如下:void setConstraint(Component comp,GridBagConstraints constraints),使用GridBagConstraints时要满足一定的约束条件,主要有:(1)gridx和gridy:指定组件摆放的行和列值。默认值为RELATIVE,表示该组件紧接着上一个摆放,二者都为0表示摆放在左上角。(2)gridwidth和gridheight:指定组件在横向和纵向上占有的网格数。设为常量REMAINDER表示把横向和纵向剩下的方格都分配给该组件。(3)weightx和weighty增量字段:用来设置缩放容器时,各组件分配的宽度和高度的比例数,若希望缩放时组件的大小不变,则将组件的增量设为0。(4)fill和anchor:如果组件分配的空间大于它所需要的空间时,GridBagLayout会根据fill的值调整该组件的大小。fiill是类GridBagConstraints中定义的四个类变量之一:GridBagConstraints.NONE(默认值)GridBagConstraints.BOTH(在水平和垂直方向上都扩展)GridBagConstraints.HORIZONTAL(在水平方向上扩展)GridBagConstraints.VERTICAL(在垂直方向上扩展)如果组件未填充整个网格,通过设置anchor来指定它的位置。取值如下:GridBagConstraints.NORTH、GridBagConstraints.SOUTH、GridBagConstraints.EAST、GridBagConstraints.WEST、GridBagConstraints.NORTHEAST等。(5)ipadx、ipady和insets:ipadx,ipady用来设置面板内各个组件左右和上下间隙大小(以象素为单位)。Insets变量是Insets类的一个实例,用来判断环绕面板本身的间隙大小。类Insets包含了用于顶部、底部、左侧和右侧插入空间的值,这些值用在面板本身的绘制。,举例(GridBagLayoutDemo.java),5.卡片布局 卡片布局是将容器的组件进行编号,象卡片一样堆放起来,每次只显示一个。通过CardLayout类提供的show()方法可显示指定标号的组件。setLayout(new CardLayout();/设置容器的布局为卡片布局void add(String s,Component comobj)其中s指定组件的编号;comobj表示被加入的组件。show(Object name,String s)其中name为容器对象名;s为组件的编号。举例(CardLayoutDemo.java),6.面板的使用 面板(JPanel)是一个容器,组件可以直接添加到面板中,也可以把面板放到另一个更大的面板中实现面板的嵌套,还可以使用方法setContentPane()把面板设为顶层容器的内容面板。使用面板的目的就是为了分层次、分区域管理各种组件,通过各个面板的布局管理器对本身的组件进行管理,达到布局美观合理。举例(PanelDemo.java),7.手工布局 在Java中,不但可以使用布局管理器,也可以不使用它而直接手工放置各个组件。举例(NoLayoutDemo.java),8.4 事件处理,在Java中,程序和用户的交互是通过响应各种事件来实现的。当用户操作GUI组件时会引发各种事件,Java虚拟机就会将事件的消息传递给程序,由程序中的事件处理方法对事件进行处理。系统根据用户的操作构造出相应事件类的对象,如鼠标的移动、单击某按钮、键盘的单击等。Java用Event类的对象来保存和表示事件,当用户在程序的运行过程中引发一个系统可以识别的事件时,系统将自动创建一个Event类的对象来表示这个事件,并在这个对象中保存该事件的相关信息。在Java中采用了委托型事件处理模式,即对象本身没有成员方法来处理事件,而是将事件委托给事件监听者处理,每个事件有一个相应的监听者接口,它规定了能够接收(并处理)该类事件的方法的规范。监听者实现了监听者接口的类,它包含有事件处理程序。每一个AWT对象至少注册一个listener对象,以便处理AWT对象的事件。编程人员要为事件源指定监听者对象(即指定处理某种事件的事件处理程序)。事件的产生者称为事件源。对事件进行处理的类叫做事件监听者。如果希望对事件进行处理,可调用事件源的注册方法把事件监听者注册给事件源,当事件源发生事件时,事件监听者就代替事件源对事件进行处理,这就是委托。委托的方法如下:Source.addxxxListener(Event Listener);Java有20多个预定义事件类,它们包含了所有组件上可能发生的事件。每个事件都有一个相应的事件接口,事件接口的事件处理方法完成对事件的处理。因此事件监听者的任务就是要实现相应的事件接口。,4.4.1 事件监听者,事件监听者是一种处理事件的接口,定义于java.awt.event包中,在此包中也定义了各种事件类。当事件源对象因用户的操作(鼠标或键盘)而产生事件时,系统会自动触发此事件类对象E,并通知所委托之事件监听者A(若来源对象已向A注册),然后事件监听者A中所定义之处理各种事件的方法(事件处理者1n)便会处理此事件E的各种状况。,4.4.2 Java常用事件、事件源、接口和方法 事件 事件源 事件接口名称实现方法ActionEvent JButton ActionListener actionPerformed(ActionEvent)JCheckBoxJRadioButton JTextFieldJTextArea JMenuItemListSelectionEvent JlistListSelectionListener valueChanged()AdjustmentEventJScrollbarAdjustmentListener adjustmentValueChangedItemEventJComboBoxItemListener itemStateChanged(ItemEvent)MouseMotionEventComponentMouseMotionListener mouseDragged(MouseEvent)mouseMoved(MouseEvent)mousePressed(MouseEvent)mouseReleased(MouseEvent)MouseEventComponentMouseListener mouseEntered(MouseEvent)mouseExited(MouseEvent)mouseClicked(MouseEvent)FocusEventComponentFocusListener focusGained focusLost,事件 事件源事件接口名称 实现方法keyPressed(KeyEvent)KeyEventComponentKeyListenerkeyReleased(KeyEvent)keyTyped(KeyEvent)windowClosing(WindowEvent)windowOpened(WindowEvent)windowIconified(WindowEvent)WindowEventJWindowWindowListenerwindowDeiconified(WindowEvent)windowClosed(WindowEvent)windowActivated(WindowEvent)windowDeactivated(WindowEvent)DocumentEventJTextFieldDocumentListenerinsertUpdate()JTextArearemoveUpdate()ChangedUpdate()ComponentEventComponentComponentListenercomponentMovedcomponentHiddencomponentResizedcomponentShownContainerEventContainerContainerListenercomponentAddcomponentRemoved,getSource()返回产生事件的对象,该方法适用于所有的事件getActionCommand()获得事件源的命令名称getItemSelectable()返回产生事件的事件源getItem()返回发生事件的项目getAdjustmentType()返回调节类型getValue()返回发生事件的调整值,4.4.3 事件处理编程范例,例1 按钮事件的处理例2 列表事件处理例3 文本区事件处理例4 滚动条事件处理例5 键盘事件举例例6 鼠标事件举例,例5 键盘事件举例 当键盘上的某个按键被按下时,会产生一个KEY_PRESSED事件;当用户释放该键时,会产生KEY_RELEASE事件。键盘事件由KeyListener中的三个方法来处理,分别是:public void keyPressed(KeyEvent e)处理按键按下事件Public void keyReleased(KeyEvent e)处理按键释放事件Public void keyTyped(KeyEvent e)处理按键生成的字符 getKeyChar()方法用来返回用户键入的字符 getKeyCode()方法用来返回键盘事件的虚拟键代码,虚拟键代码通过前缀VK_对应键盘上的按键。举例(keyDemo.java),适配器类 Java语言为许多方法事件接口提供了Adapter(适配器)类,如:MouseAdapter、WindowAdapter、KeyAdapter等。这些Adapter类实现了相应的事件接口,类中的方法是空的,继承Adapter类时,重写所需的方法即可。举例(keyDemo2.java),8.5 高级图形用户界面,Java的高级图形用户界面组件主要包括窗口、菜单和对话框等,它们可以构成标准GUI应用程序。,8.5.1 颜色和字体1.颜色,常用颜色表颜色常量 色彩RGB值颜色常量 色彩 RGB值 black 黑色(0,0,0)magenta 洋红(255,0,255)blue 蓝色(0,0,255)orange 橙色(255,200,0)cyan 青色(0,255,255)pink 粉红(255,17,275)darkGray 灰黑(64,64,64)red 红色(255,0,0)gray 灰色(128,128,128)white 白色(255,255,255)green 绿色(0,255,0)yellow 黄色(255,255,0)lightGray 浅灰(192,192,192),(1)构造方法Color(float r,float g,float b)指定三原色R、G、B的浮点值Color(int r,int g,int b)指定三原色R、G、B的整数值Color(int rgb)指定一个二进制整数来代表三原色的混合色:1623位代表红色815位代表绿色07位代表蓝色。(2)常用方法setColor(Color c)设置绘图颜色setBackground(Color c)设置背景色setForeground(Color c)设置前景色getColor(Color c)获取绘图颜色getBackground(Color c)获取背景色getForeground(Color c)获取前景色,2.字体 Java通过Font类处理字体。Font类的构造方法如下:Font(String name,int style,int size)其中的三个参数分别代表字体名称、风格、大小。Java提供了5种逻辑字体:Dialog、SansSerif、Monospaced、Serif和DialogInput,并将它们映射为计算机上的物理字体。如:在Windows系统上,SansSerif对应为Arial。如果使用了计算机不支持的字体,Java将以该计算机的默认字体来代替。设定字体风格的常量:Font.BOLD(加粗)、Font.ITALIC(倾斜)、Font.PLAIN(正常),也可将它们叠加在一起得到组合的效果。字体大小是以点来衡量的,一个点是1/72英寸,可选取整数值。创建字体后,可调用setFont()方法将其设置为当前字体。,常用方法:int getStyle():返回当前字体的风格的整数值 int getSize():返回当前字体大小的整数值 String getName():返回当前字体名称的字符串 String getFamily():返回当前字体家族名称的字符串boolean isPlain():返回当前字体是否是正常字体 boolean isBold():返回当前字体是否是黑体 boolean isItalic():返回当前字体是否是斜体举例(ColorFontDemo.java),8.5.2 窗口、框架、对话框 窗口(JWindow)、框架(JFrame)、对话框(JDialog)和小应用程序(JApplet)是Swing的四个顶层容器,它们构成图形用户界面的主体,他们不允许直接加入组件。通常情况下,组件被加入到容器的内容面板(contentpane)中。要获得一个内容面板,可使用getContentPane()方法,要设置它的内容面板可使用setContentPane()方法。将组件加入到一个容器的内容面板中,步骤如下:(1)创建一个面板;(2)使用方法add(Component)将组件加入到面板中;(3)用面板作为参数来调用方法setContentPane(Container)。,1.窗口(JWindow)窗口能够显示在用户的桌面上,没有标题栏、最大化、最小化和关闭按钮。这种无边框的窗口通常用在程序首次启动和动画程序中,但在图形用户界面中一般不会直接产生JWindow对象,而是使用JFrame类。2.框架(JFrame)框架是一个功能齐全的窗口,它带有标题栏、窗口管理按钮,可在其中添加组件,框架是通过Jframe类生成的,JFrame类的构造方法如下:JFrame()创建无标题的窗口JFrame(String s)创建有标题的窗口 框架在创建时是不可见的,需调用方法setVisible(true)或show()设为可见。对应setVisible(false)或hide()设为不可见的。,JFrame从基类Frame继承的常用方法如下:setTitle(String s):设置框架的标题setIconImage(Image image):设置框架图标的图像setRe

    注意事项

    本文(第八章图形用户界面(Swing)方案课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开