欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Java程序设计第13章-图形用户界面GUIppt课件.pptx

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

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

    Java程序设计第13章-图形用户界面GUIppt课件.pptx

    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的核心,为用户提供基本的界面组件。这些类都放在了java.awt包中。13.1.1 抽象窗口工具集AWTComponentLabelButtonContainerCheckBoxChoiceTextComponentCanvasWindowPanelTextFieldTextAreaFrameDialogAppletAWT的Component类结构13.1.1 抽象窗口工具集AWTAWT由下面几部分组成:l Component(组件):按钮、标签、菜单等组件。l Container(容器):扩展组件的抽象类Window、Panel、Frame等。l LayoutManager(布局管理器):定义容器中各组件的放置位置和大小等。l Graphics(图形类):与图形处理相关的类。AWT的缺点是重量级组件,耗费资源多;图形用户界面依赖于本地系统,失去了统一的风格。13.1.2 Swing组件l Swing组件是在AWT组件基础上发展而来的轻量级组件。l 它提供了AWT所能提供的所有功能并进行了扩充。l 组件均用Java语言进行开发。l 界面风格统一,更为美观。l 组件都放在javax.swing包中。13.1.2 Swing组件JLabelJListAbstractButtonJMenuBarJTableJPanelJTextComponentJTreeJOptionPaneComponentWindowJComponentFrameDialogContainerJFrameJDialogJButtonJToggleButtonJMenuItemJTextAreaJEditorPaneJTextFieldJComponent部分类层次关系13.1.3 组件与事件l Java是以组件的形式进行界面设计的。l 界面中的每一个组成部分都是一个组件,如按钮、菜单、文本框、窗口等。l 这些组件直接或间接继承自Component类。l Container容器类是一个特殊的组件,它用于承载和显示其他组件。l 其他组件按照一定的顺序或位置装入容器,才能够显示和使用。13.1.3 组件与事件GUI事件处理机制。 组件在容器中不能够直接工作,需要与完成的功能连接起来,才能实现具体的功能,这就是Java的事件机制。 在事件机制下,一个事件分为事件源、监听器和事件处理程序。 监听器用于监听事件源。一个监听器可以监听多个事件源。 监听器对象监听到事件源发生的事件后,就通知相应的事件处理程序完成对应的功能,从而实现一次事件的处理。C目录ONTENTS13.2 窗口13.3 常用组件与布局13.6 小结13.1 图形用户界面概述13.4 事件处理13.5 对话框13.2.1 JFrame类JFrame(窗口)类是Container(容器)类的间接子类。一个JFrame对象就是一个窗口,可以容纳其他组件。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)设置窗口的位置(窗口左上角坐标)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(菜单条),用于创建一个菜单条。一个窗口中只能有一个菜单条,并且只能添加到窗口顶端。Frame添加JMenuBar的方法是:1、JMenuBar类setJMenuBar(JMenuBar menubar) JMenu(菜单)类,用于创建菜单。一个菜单条中可以添加多个菜单对象。一个菜单中可以添加另一个菜单,实现菜单的嵌套。JMenu类的常用构造方法:JMenu(String s)13.2.2 窗口菜单2、JMenu类 JMenuItem(菜单项)类用于创建菜单项,每一个菜单中可以包含多个菜单项。JMenuItem类的常用构造方法: JMenuItem(String text) JMenuItem(String text,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、JRadioButton单选按钮类和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、JCheckBox复选框 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 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 columns)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、JTabbedPane、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可以容纳其他组件,之间可以嵌套,但本身不可见,需要加入到顶层容器。常用构造方法: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,Component left,Component right)JSplitPane用于将容器拆分成两个部分,每个部分各放一个组件。容器拆分时可以水平拆分和垂直拆分,中间的拆分线可以进行移动。常用构造方法:参数orientation为JSplitPane.HORIZONTAL_SPLIT(水平分割)或 JSplitPane.VERTICAL_SPLIT(垂直分割),left为放在左边(或上边)的组件,right为放在右边(或下边)的组件;参数c为true表示拆分线移动时组件跟着连续变化,为false则拆分线停止移动组件再发生变化。 4、JSplitPane 13.3.3 常用布局每个容器使用布局管理器对存放其中的组建进行位置、大小的管理。使用布局管理器后,组件在容器中的大小和位置完全由布局管理器控制和管理,程序员不需要也不能再对组件的位置和大小进行控制。每一种容器都有默认的布局管理器。可以用setLayout()方法重新设置布局管理器。13.3.3 常用布局java.awt.FlowLayout是流式布局管理器。把所有组件行进行排列,一行满了后自动排到下一行。组件的显示位置随着窗口的缩放而发生变化,但顺序不变。位置与添加顺序密切相关,使用时要按一定的顺序进行添加。它是JPanel的默认布局管理器。构造方法:1、FlowLayout public FlowLayout()public 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称为边框布局管理器,把一个容器分成五个区域,这五个区域分别是东西南北中。五个区域的常量标识为: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称为网格布局管理器,它将容器划分成网格结构,每一个网格中可以放置一个组件。所有组件的大小都相同,均填充满整个网格。这些组件按照添加顺序从左到右,从上到下加入到网格中并显示。构造方法: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列的网格,然后在每个网格单元中添加一个相应的按键。Example13_08.java13.3.3 常用布局java.awt.GridBagLayout称为网格包布局管理器,不需要组件大小相同就可以按水平、垂直或沿着基线对齐。GridBagLayout中的组件可以占用一个或多个网络单元格,但这些组件的具体放置位置和放置方式需要通过GridBagConstraints类的实例进行设置。GridBagLayout的构造方法:4、GridBagLayout public GridBagConstraints()public GridBagConstraints(int gridx,int gridy,int gridwidth,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称为卡片布局管理器。把添加的每个组件像卡片一样叠加在一起,每次只显示最上面的一个组件。卡片的顺序由组件对象本身在容器内部的顺序决定。CardLayout 定义了一组方法,这些方法允许应用程序按顺序地浏览这些卡片,或者显示指定的卡片。5、CardLayout13.3.3 常用布局5、CardLayoutCardLayout类的常用方法类型方法名功能CardLayout()创建一个间距为0的卡片布局CardLayout(int hgap,int gap)创建一个具有水平间距和垂直间距的卡片布局voidfirst(Container parent)翻转到容器的第一张卡片voidnext(Container parent)翻转到指定容器的下一张卡片voidprevious(Container parent)翻转到指定容器的前一张卡片。如果当前可见卡片是第一个,则翻到最后一张voidlast(Container parent)翻转到容器的最后一张卡片voidshow(Container arent,String name)显示指定name的组件 13.3.3 常用布局javax.swing.BoxLayout称为盒式布局管理器。允许以水平或垂直方向布置多个组件,这些组件排在一行或一列。BoxLayout是Box容器的默认布局管理器。构造方法:public BoxLayout(Container target,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 x,int y,int width,int height)方法指定该组件在容器中的位置和大小。7、null(空布局)【例13.11】null(空布局)应用举例,在窗口中构造一个围棋的棋盘。Example13_11.java【例13.11】运行结果C目录ONTENTS13.2 窗口13.3 常用组件与布局13.6 小结13.1 图形用户界面概述13.4 事件处理13.5 对话框 13.4.1 事件处理模型能够产生事件的组件都可以成为事件源,例如按钮、菜单、文本框等。1、事件源事件监视器用于对发生事件的事件源进行监视。绑定监视器又称为注册监视器。注册监视器的方法:2、事件监视器事件源对象.addXXXListener(监视器)其中,XXX为对应的事件类型。 完成一个事件处理可分为三步:确定事件源;对确定的事件源注册监视器;对事件接口的监视器类重写其中的方法。3、处理事件的接口 13.4.2 ActionEvent事件ActionEvent称动作事件。能产生ActionEvent事件的事件源有按钮、文本框、密码框、菜单项、单选按钮等。1、ActionEvent事件源注册监视器的方法为:2、注册监视器事件源对象.addActionListener(ActionListener listener)ActionEvent是动作事件类。参数listener是监听“事件源对象”的监听器,并能对事件进行处理,它是一个实现ActionListener接口的类的对象。13.4.2 ActionEvent事件这个接口中只有一个方法:3、ActionListener接口ActionEvent是动作事件类,其对象用于表示产生的动作事件。常用方法: public void actionPerformed(ActionEvent e) public Object getSource()获取产生这个事件的事件源对象。public String getActionCommand()返回与此动作相关的命令字符串。4、ActionEvent类13.4.2 ActionEvent事件【例13.12】利用ActionEvent事件,实现扑克牌的逐一显示。【题目分析】 根据题意,要想实现扑克牌的逐一显示,需要使用CardLayout布局管理器,按顺序添加各张扑克牌。由于图片对象不能直接加入到容器中,可以将图片添加到JLabel组件中。为了实现图片的逐一显示,可以根据需要创建若干个按钮,通过ActionEvent事件的监听,完成不同的翻看动作。Example13_12.java 13.4.3 MouseEvent事件所有的组件都可以产生鼠标事件。当鼠标在一个组件上进行单击、移动、拖动等操作时都会触发MouseEvent事件。1、MouseEvent事件源事件源注册监听器有两个方法:2、注册监视器addMouseListener(MouseListener listener)addMouseMotionListener(MouseMotionListener listener)第一个方法是注册鼠标监视器,第二个方法是注册鼠标移动监视器。13.4.3 MouseEvent事件MouseListener接口,主要处理鼠标单击事件。MouseMotionListener接口,主要处理鼠标移动和拖动事件。3、鼠标事件接口13.4.3 MouseEvent事件MouseListener和MouseMotionListener接口的常用方法类型方法名功能voidmouseClicked(MouseEvent e)鼠标按键在组件上单击(按下并释放)时调用该方法voidmousePressed(MouseEvent e)鼠标按键在组件上按下时调用该方法voidmouseReleased(MouseEvent e)鼠标按钮在组件上释放时调用该方法voidmouseEntered(MouseEvent e)鼠标进入到组件上时调用该方法voidmouseExited(MouseEvent e)鼠标移出组件时调用该方法voidmouseDragged(MouseEvent e)*鼠标按键在组件上按下并拖动时调用该方法voidmouseMoved(MouseEvent e)*鼠标光标移动到组件上但无按键按下时调用13.4.3 MouseEvent事件为减少程序的编写量,Java提供了对应的适配器类。当处理事件的接口中多于一个方法时,Java相应地就提供一个适配器类。该类继承了相应的接口,并重写了所有的方法,只是这些方法均为空。当用户继承这个类后,只要重写想完成的方法即可。对于鼠标事件,MouseAdapter类就实现了MouseListener接口和MouseMotionListener接口,监视器可以通过继承MouseAdapter类来代替继承鼠标接口,简化了程序设计。13.4.3 MouseEvent事件MouseEvent类表示产生鼠标事件的对象。MouseEvent类的常用方法4、MouseEvent类类型方法名功能ObjectgetSource()获取产生鼠标事件的事件源intgetButton()获取触发事件的鼠标按键。鼠标左键的返回值为1,对应的常量为MouseEvent.BUTTON1;鼠标右键的返回值为3,对应的常量为MouseEvent.BUTTON3;鼠标滚轮的返回值为2,对应的常量为MouseEvent.BUTTON2intgetClickCount() 获取鼠标连击的次数intgetX()获取鼠标指针在事件源中的X坐标值intgetY()获取鼠标指针在事件源中的Y坐标值13.4.3 MouseEvent事件【例13.13】使用鼠标适配器类,监听鼠标在按钮上的点击动作,显示点击的按键、点击的次数和点击时鼠标的坐标位置。Example13_13.java【例13.13】运行结果 13.4.4 KeyEvent事件当一个组件处于激活状态时,敲击键盘上的按键就会产生KeyEvent键盘事件。1、事件源事件源注册监听器的方法:addKeyListener(KeyListener listener);KeyEvent是键盘事件类。KeyListener接口实现键盘事件监听。3、KeyListener接口2、注册监视器 13.4.4 KeyEvent事件public void keyPressed(KeyEvent e)public void keyReleased(KeyEvent e)public void keyTyped(KeyEvent e)KeyListener接口中定义的方法:说明:第一个方法在事件源上按下按键时被调用;第二个方法在事件源上松开按下的键时被调用;第三个方法在事件源上键入某个键又松开时被调用。 Java为KeyListener接口提供的适配器类是KeyAdapter类。13.4.4 KeyEvent事件KeyEvent类用于产生键盘事件对象。KeyEvent类的常用方法: 4、KeyEvent类类型方法名功能ObjectgetSource()获取产生键盘事件的事件源chargetKeyChar()获取与此事件中的键关联的字符,例如,shift + “a” 的返回值是“A”,这种关联字符只在keyType()方法中才生效intgetKeyCode()键盘上实际键的整数代码,在KeyEvent类中以“VK_”开头的静态常量代表各个按键的KeyCode。常用的KeyCode键值如表13.6所示(下页)static StringgetKeyText(int keyCode)获得描述 keyCode 的字符串,如“HOME”、“F1” 或“A”等。booleanisActionKey()判断此事件中的键是否为“动作”键。如果是则返回 true,否则返回false。13.4.4 KeyEvent事件4、KeyEvent类KeyEvent类用于产生键盘事件对象。KeyCode键值表:KeyCode常量键值KeyCode常量键值VK_0VK_909键VK_SLASH/键VK_AVK_Zaz键VK_BACK_SLASH键VK_F1VK_F12功能键F1F12VK_OPEN_BRACKET键VK_SHIFTShift键VK_CLOSE_BRACKET键VK_CONTROLctrl键VK_QUOTE左单引号键VK_ALTalt键VK_BACK_QUOTE右单引号键VK_ENTER回车键VK_LEFT向左箭头键13.4.4 KeyEvent事件4、KeyEvent类KeyCode常量键值KeyCode常量键值VK_BACK_SPACE退格键VK_RIGHT向右箭头键VK_ESCAPEEsc键VK_UP向上箭头键VK_SPACE空格键VK_DOWN向下箭头键VK_COMMA逗号键VK_ENDEnd键VK_SEMICOLON分号键VK_HOMEHome键VK_PERIOD.键VK_TABTab键 13.4.5 ItemEvent事件产生ItemEvent事件的事件源有选择框JCheckBox、下拉列表JComboBox、菜单项JMenuItem等。1、事件源事件源注册监听器的方法:2、注册监视器addItemListener(ItemListener listener);ItemEvent是项目事件类。 13.4.5 ItemEvent事件public void itemStateChanged(ItemEvent e)当选择项发生改变时调用该方法。ItemListener接口实现项目状态改变事件的监听。接口中的方法:3、ItemListener接口 13.4.5 ItemEvent事件public Object getItem()public int getStateChange()public String paramString()ItemEvent类用于产生项目状态改变事件的对象。常用方法:第二个方法可以获取状态更改的类型,有2个常量值,分别是ItemEvent.SELECTED(选择项改变、值为1)和ItemEvent.DESELECTED(选择项未改变、值为2);第三个方法获取标识此项事件的参数字符串。这个方法会得到一系列与此事件相关的信息,在程序调试时非常有用。4、ItemEvent类13.4.5 ItemEvent事件【例13.14】设计一个图形用户界面,界面中有编辑域JTextField、按钮JButton、选择框JCheckBox和下拉列表JComboBox等组件,并设置相应的监视器对组件进行监听,并将监听结果显示在TextArea中。Example13_14.java【例13.14】运行结果 13.4.6 FocusEvent事件每个GUI组件都能够作为FocusEvent焦点事件的事件源。1、事件源事件源注册监听器的方法:2、事件监视器addFocusListener(FocusListener listener)FocusEvent是焦点事件类。 13.4.6 FocusEvent事件public void focusGained(FocusEvent e)public void focusLost(FocusEvent e)FocusListener接口实现焦点事件的监听,接口中的方法:3、FocusListener接口第一个方法当组件从无焦点变成有焦点时调用该方法;第二个方法当组件从有焦点变成无焦点时调用该方法。FocusListener接口的适配器类是FocusAdapter类。 13.4.6 FocusEvent事件public Component getOppositeComponent()public boolean isTemporary()FocusEvent类用于产生焦点事件对象。常用方法:第一个方法用于获得此焦点更改中涉及的另一个 Component,对于 FOCUS_GAINED获得焦点事件,返回的组件是失去当前焦点的组件。对于 FOCUS_LOST失去焦点事件,返回的组件是获得当前焦点的组件;第二个方法用于获得焦点更改的级别,如果焦点更改是暂时性的,则返回 true,否则返回 false。4、ItemEvent类 13.4.7 DocumentEvent事件能够产生javax.swing.event.DocumentEvent事件的事件源有文本框JTextField、密码框JPasswordField、文本区JTextArea。这些组件不能直接触发DocumentEvent事件,而是由组件对象调用getDocument()方法获取文本区维护文档,这个维护文档可以触发DocumentEvent事件。事件源注册监听器的方法:2、注册监视器addDocumentListener(DocumentListener listener)DocumentEvent是文档事件类。1、事件源 13.4.7 DocumentEvent事件DocumentListener接口实现文本事件的监听。接口中的方法:3、DocumentListener接口public void changedUpdate(DocumentEvent e)public void removeUpdate(DocumentEvent e)public void insertUpdate(DocumentEvent e) 13.4.7 DocumentEvent事件DocumentEvent不是类,而是一个接口,位于javax.swing.event包中,用于处理文本事件。接口的方法:4、DocumentEvent接口Document getDocument()DocumentEvent.EventType getType()int getOffset()int getLength() 13.4.8 窗口事件窗口事件的事件源均为Window的子类,即Window的子类对象都能触发窗口事件。1、事件源事件源注册监听器有3个方法,分别对应窗口事件的3个接口:2、注册监视器addWindowListener(WindowListener listener)addWindowFocusListener(WindowFocusListener listener)addWindowStateListener(WindowStateListener listener) 13.4.8 窗口事件和Window有关的接口有三个:3、Window接口WindowListener接口实现窗口事件的监听,WindowFocusListener接口实现窗口焦点事件的监听,WindowStateListener接口实现窗口状态事件的监听。Window接口中的方法 类型方法名功能voidwindowOpened(WindowEvent e)当窗口被打开时,调用该方法voidwindowClosing(WindowEvent e)当窗口正在被关闭时,调用该方法。在这个方法中必须执行dispose()方法,才能触发“窗口已关闭”,监视器才会再调用windowClosed()方法voidwindowClosed(WindowEvent e)当对窗口调用 dispose 而将其关闭时,调用该方法voidwindowIconified(WindowEvent e)当窗口从正常状态变为最小化状态时,调用该方法voidwindowDeiconified(WindowEvent e)当窗口从最小化状态变为正常状态时,调用该方法13.4.8 窗口事件类型方法名功能voidwindowActivated(WindowEvent e)当Window 设置为活动 Window 时,调用该方法voidwindowDeactivated(WindowEvent e)当 Window 不再是活动 Window 时,调用该方法voidwindowGainedFocus(WindowEvent e)1当Window被设置为聚焦 Window时,调用该方法voidwindowLostFocus(WindowEvent e)1当Window不再是聚焦 Window 时,调用该方法voidwindowStateChanged(WindowEvent e)2当窗口状态改变时(例如最大化、最小化等),调用该方法13.4.8 窗口事件Window接口中的方法 13.4.8 窗口事件WindowEvent类用于产生窗口事件对象。常用方法:4、WindowEvent类public Window getWindow()public int getNewState()public int getOldState()public Window getOppositeWindow()第一个方法用于获得窗口事件的事件源。第二个方法,窗口状态改变时可返回新的窗口状态;第三个方法,窗口状态改变时可返回以前的窗口状态;第四个方法,可返回在此焦点或活动性变化中所涉及到的其他窗口对象。C目录ONTENTS13.2 窗口13.3 常用组件与布局13.6 小结13.1 图形用户界面概述13.4 事件处理13.5 对话框13.5 对话框u 对话框用于用户和程序之间进行信息交换。u 类JDialog(对话框)及其子类(用户定义)的对象表示对话框。u JDialog类和JFrame类一样都是Window的子类,同属于顶层容器。u 对话框分为有模式对话框和无模式对话框两类。u 在创建一些简单、标准的对话框时,主要使用javax.swing.JOptionPane类来完成。u 如果想创建一个自定义的对话框,则可以使用javax.swing.JDialog类。 13.5.1 消息对话框消息对话框showMessageDialog是显示指定内容的、带有一个按钮的对话框。用于显示一些提示信息,它是一个有模式对话框。创建消息对话框的常用方法为:public static void showMes

    注意事项

    本文(Java程序设计第13章-图形用户界面GUIppt课件.pptx)为本站会员(飞****2)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开