您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > Java程序设计第13章-图形用户界面GUI
13图形用户界面Java程序设计第章导读Introduction图形用户界面设计是程序设计的重要组成部分,Java语言提供了丰富的组件来完成界面设计,并通过事件机制实现功能处理。C目录ONTENTS13.2窗口13.3常用组件与布局13.6小结13.1图形用户界面概述13.4事件处理13.5对话框13.1.1抽象窗口工具集AWT图形用户界面(GraphicUserInterface,GUI)是实现人机交互的窗口。Java早期提供的AWT包(AbstractWindowToolkit,AWT)中包括了图形用户界面设计的基本类库,它是Java设计GUI的核心,为用户提供基本的界面组件。这些类都放在了java.awt包中。13.1.1抽象窗口工具集AWTComponentLabelButtonContainerCheckBoxChoiceTextComponentCanvasWindowPanelTextFieldTextAreaFrameDialogAppletAWT的Component类结构13.1.1抽象窗口工具集AWTAWT由下面几部分组成:Component(组件):按钮、标签、菜单等组件。Container(容器):扩展组件的抽象类Window、Panel、Frame等。LayoutManager(布局管理器):定义容器中各组件的放置位置和大小等。Graphics(图形类):与图形处理相关的类。AWT的缺点是重量级组件,耗费资源多;图形用户界面依赖于本地系统,失去了统一的风格。13.1.2Swing组件Swing组件是在AWT组件基础上发展而来的轻量级组件。它提供了AWT所能提供的所有功能并进行了扩充。组件均用Java语言进行开发。界面风格统一,更为美观。组件都放在javax.swing包中。13.1.2Swing组件JLabelJListAbstractButtonJMenuBarJTableJPanelJTextComponentJTreeJOptionPaneComponentWindowJComponentFrameDialogContainerJFrameJDialogJButtonJToggleButtonJMenuItemJTextAreaJEditorPaneJTextFieldJComponent部分类层次关系13.1.3组件与事件Java是以组件的形式进行界面设计的。界面中的每一个组成部分都是一个组件,如按钮、菜单、文本框、窗口等。这些组件直接或间接继承自Component类。Container容器类是一个特殊的组件,它用于承载和显示其他组件。其他组件按照一定的顺序或位置装入容器,才能够显示和使用。13.1.3组件与事件GUI事件处理机制。组件在容器中不能够直接工作,需要与完成的功能连接起来,才能实现具体的功能,这就是Java的事件机制。在事件机制下,一个事件分为事件源、监听器和事件处理程序。监听器用于监听事件源。一个监听器可以监听多个事件源。监听器对象监听到事件源发生的事件后,就通知相应的事件处理程序完成对应的功能,从而实现一次事件的处理。C目录ONTENTS13.2窗口13.3常用组件与布局13.6小结13.1图形用户界面概述13.4事件处理13.5对话框13.2.1JFrame类JFrame(窗口)类是Container(容器)类的间接子类。一个JFrame对象就是一个窗口,可以容纳其他组件。JFrame类的常用方法:类型方法名功能JFrame()构造一个初始时不可见的窗口JFrame(Stringtitle)创建一个初始不可见的、指定标题的窗口voidsetTitle(Stringtitle)设置窗口标题栏的内容voidsetSize(intwidth,intheight)设置窗口的大小voidsetRisizable(booleanr)设置是否可以改变窗口大小13.2.1JFrame类类型方法名功能voidsetVisible(booleanv)设置窗口是否可见,默认不可见voidsetLocation(intx,inty)设置窗口的位置(窗口左上角坐标)voidsetLocationRelativeTo(null)设置窗口居中显示ContainergetContentPane()获取内容面板voidsetDefaultCloseOperation(into)设置在此窗口上发起close时默认执行的操作。13.2.1JFrame类【例13.1】创建一个新窗口,定义该窗口大小为300*200,初始化位置为200*200,并且大小不可调整。Example13_01.java【例13.2】通过继承方式创建一个新窗口Example13_02.java13.2.2窗口菜单一个窗口菜单由多个组件共同构成。JMenuBar(菜单条),用于创建一个菜单条。一个窗口中只能有一个菜单条,并且只能添加到窗口顶端。Frame添加JMenuBar的方法是:1、JMenuBar类setJMenuBar(JMenuBarmenubar)JMenu(菜单)类,用于创建菜单。一个菜单条中可以添加多个菜单对象。一个菜单中可以添加另一个菜单,实现菜单的嵌套。JMenu类的常用构造方法:JMenu(Strings)13.2.2窗口菜单2、JMenu类JMenuItem(菜单项)类用于创建菜单项,每一个菜单中可以包含多个菜单项。JMenuItem类的常用构造方法:JMenuItem(Stringtext)JMenuItem(Stringtext,Iconicon)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按钮类publicJButton(Stringtext)publicJButton(Stringtext,Iconicon)JRadioButton类用于创建单选按钮。JRadiaoButton类的构造方法:2、JRadioButton单选按钮类和ButtonGroup按钮作用域类publicJRadioButton(Stringtext)publicJRadioButton(Stringtext,booleanselected)13.3.1常用组件构造方法:publicButtonGroup()ButtonGroup按钮作用域类用于确定单选按钮的作用域。同一个域中只能有一个单选按钮处于选中状态。创建域对象后,调用add(AbstractButtonb)方法将单选按钮加入到指定作用域中。2、JRadioButton单选按钮类和ButtonGroup按钮作用域类13.3.1常用组件3、JCheckBox复选框JCheckBox类用于创建复选框。构造方法:JCheckBox(Stringtext)JCheckBox(Stringtext,booleanselected)4、JLabel标签JLabel类用于创建显示短文本字符串或图像的标签。常用的构造方法:JLabel()JLabel(Stringtext)JLabel(Stringtext,Iconicon,inthorizontalAlignment)13.3.1常用组件JTextField类用于创建编辑单行字符串的文本框。常用的构造方法:5、JTextField文本框JTextField(Stringtext)JTextField(Stringtext,intcolumns)JPasswordField类功能与JTextField类相同。不同之处:输入内容时不直接显示,而是用“*”或“●”代替。常用的构造方法:6、JPasswordField密码框JPasswordField(Stringtext)JPasswordField(Stringtext,intcolumns)13.3.1常用组件JTextArea(Stringtext)JTextArea(introws,intcolumns)JTextArea(Stringtext,introws,intcolumns)JTextArea类用于创建显示多行文本的文本区。常用构造方法:JScrollPane类属于容器,用于创建一个滚动条视图。与TextArea类配合,当文本区内容超出显示范围时显示滚动条。(详见13.3.2节)7、JTextArea文本区JScrollPane滚动条视图13.3.1常用组件【例13.4】常用组件的使用。Example13_04.java13.3.2常用容器Java提供了多种容器为程序设计所使用。容器可分为三类:顶层容器,包括JFrame、JDialog、JApplet、JWindow。普通容器,包括JPanel、JScrollPane、JSplitPane、JTabbedPane、JOptionPane。特殊容器,包括JInternalFrame、JLayeredPane、JRootPane、JToolBar。13.3.2常用容器【例13.5】JWindow的简单显示。Example13_05.java1、JwindowJWindow也是顶层容器,只有一个空白界面,不具有标题栏和窗口管理按钮。【例13.5】运行结果13.3.2常用容器2、JPanel3、JScrollPaneJPanel类,Java中最常用的轻量级容器之一,默认布局管理器是FlowLayout。JPanel可以容纳其他组件,之间可以嵌套,但本身不可见,需要加入到顶层容器。常用构造方法:JTextField(Stringtext)JTextField(Stringtext,intcolumns)JScrollPane提供轻量级组件的Scrollable视图用于管理滚动条。用于TextArea文本框中,它不支持重量级组件。常用构造方法:JScrollPane()JScrollPane(Componentview)13.3.2常用容器publicJSplitPane(intorientation,Componentleft,Componentright)publicJSplitPane(intorientation,booleanc,Componentleft,Componentright)JSplitPane用于将容器拆分成两个部分,每个部分各放一个组件。容器拆分时可以水平拆分和垂直拆分,中间的拆分线可以进行移动。常用构造方法:参数orientation为JSplitPane.HORIZONTAL_SPLIT(水平分割)或JSplitPane.VERTICAL_SPLIT(垂直分割),left为放在左边(或上边)的组件,right为放在右边(或下边)的组件;参数c为true表示拆分线移动时组件跟着连续变化,为false则拆分线停止移动组件再发生变化。4、JSplitPane13.3.3常用布局每个容器使用布局管理器对存放其中的组建进行位置、大小的管理。使用布局管理器后,组件在容器中的大小和位置完全由布局管理器控制和管理,程序员不需要也不能再对组件的位置和大小进行控制。每一种容器都有默认的布局管理器。可以用setLayout()方法重新设置布局管理器。13.3.3常用布局java.awt.FlowLayout是流式布局管理器。把所有组件行进行排列,一行满了后自动排到下一行。组件的显示位置随着窗口的缩放而发生变化,但顺序不变。位置与添加顺序密切相关,使用时要按一定的顺序进行添加。它是JPanel的默认布局管理器。构造方法:1、FlowLayoutpublicFlowLayout()publicFlowLayout(intalign,inthgap,intvgap)参数align:FlowLayout.LEFT(
本文标题:Java程序设计第13章-图形用户界面GUI
链接地址:https://www.777doc.com/doc-5460006 .html