您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > JavaGUI图形用户界面课件
1第9章GUI图形用户界面9.1Swing概述9.2Swing容器9.3常用Swing组件9.4GUI布局管理器9.5事件处理模型教学目标了解Swing的体系结构及相关概念。掌握Swing组件的特性和分类,了解使用Swing开发GUI程序的步骤。掌握常用容器的分类,一般掌握容器JFrame和JPanel的构造方法和常用方法。掌握常用Swing组件的构造方法和常用方法。了解GUI布局管理器的分类,以及各种布局管理器的特点。了解事件处理模型的基本概念,一般掌握事件处理的基本步骤。教学重点与Swing有关的基本概念Swing容器、Swing组件和布局管理器的使用方法使用Swing组件创建用户界面的过程事件处理模型有关知识Java程序设计与实践教程—清华大学出版社59.1Swing概述Java语言提供两个处理图形用户界面的类库:java.awt包:AbstractWindowToolKit——抽象窗口工具包java.swing包:在AWT基础上构建的一套新的图形界面系统Awt与Swing的区别:(1)AwtJava处理图形用户界面的初始途径。重量级组件,把图形元素的创建和行为交给目标平台上的本地GUI工具箱进行处理。理论上“一次编写,随处运行”。实际上“一次编写,随处调试”。(2)Swing:是JFC(FoundationClasses)的一部分,轻量级组件,显示界面与本机OS无关,100%的纯Java实现。Java程序设计与实践教程—清华大学出版社69.1Swing概述图9-1Swing的体系结构Java程序设计与实践教程—清华大学出版社79.1Swing概述GUI设计三个概念:组件(Component):是Java的图形用户界面的最基本组成部分容器(Container):是Component的子类,因此容器本身也是一个组件布局管理器(LayoutManager):每个容器都有一个布局管理器,当容器需要对某个组件进行定位或判断其大小尺寸时,就会调用其对应的布局管理器。Java程序设计与实践教程—清华大学出版社8java.lang.Objectjava.awt.Componentjava.awt.Containerjava.awt.Paneljava.awt.Windowjava.applet.AppletJAppletjavax.swing.JComponentjava.awt.Dialogjava.awt.FrameJDialogJFrameJWindowSwing组件注意:Component类是一个抽象类,不能直接使用。Java程序设计与实践教程—清华大学出版社9JComponentJColorChooserJFileChooserJInternalFrameJLayeredPaneJOptionPaneJProgramBarJRootPaneJSeparatorJSliderJTabbedPaneJPopupMenu.SeparatorJToolBar.SeparatorJDesktopPaneJSplitPaneJTableJToolBarJToolTipJTreeJViewPort图Swing比AWT增加的组件Java程序设计与实践教程—清华大学出版社109.1Swing概述Swing组件的特性(1)MVC(Model-View-Controller)体系结构(2)可存取性支持(3)支持键盘操作(4)设置边框(5)使用图标(Icon)Java程序设计与实践教程—清华大学出版社119.1Swing概述Swing组件的分类(1)顶层容器:JFrame,JApplet,JDialog,JWindow共4个。(2)中间容器:JPanel,JScrollPane,JSplitPane,JToolBar等。(3)特殊容器:在GUI上起特殊作用的中间层,如JInternalJFrame,JLayeredPane,JRootPane等。(4)基本控件:实现人机交互的组件,如Jbutton,JComboBox,JList,JMenu,JSlider,JTextField等。(5)不可编辑信息的显示:向用户显示不可编辑信息的组件,例如JLabel,JProgressBar,ToolTip等。(6)可编辑信息的显示:向用户显示能被编辑的格式化信息的组件,如JColorChooser,JFileChoose,JFileChooser,JTable,JTextArea等。Java程序设计与实践教程—清华大学出版社129.1Swing概述使用Swing的基本规则Swing组件不能直接添加到顶层容器中,必须添加到一个与Swing顶层容器相关联的内容面板上。(1)把Swing组件放入一个顶层Swing容器的内容面板上。(2)避免使用非Swing的重量级组件。Java程序设计与实践教程—清华大学出版社139.1Swing概述对JFrame添加组件有两种方式:(1)用getContentPane()方法获得JFrame的内容面板,再对其加入组件:frame.getContentPane().add(childComponent)(2)建立一个JPanel或JDesktopPane之类的中间容器,把组件添加到容器中,用setContentPane()方法把该容器置为JFrame的内容面板:JPanelcontentPane=newJPanel();……//把其它组件添加到Jpanel中;frame.setContentPane(contentPane);//把contentPane对象设置成为frame的内容面板Java程序设计与实践教程—清华大学出版社149.1Swing概述Swing程序设计流程(1)引入swing包(2)选择外观和感觉(3)设置顶层容器(4)设置按钮和标签(5)向容器中添加组件(6)在组件周围添加边界(7)进行事件处理Java程序设计与实践教程—清华大学出版社159.2Swing容器容器java.awt.Container是Component的子类,一个容器可以容纳多个组件,并使它们成为一个整体。Swing常用的顶层容器有JFrame:用来创建application,最常用的JApplet:用来创建appletJDialog:用来创建对话框,常用JWindow:不常用Java程序界面的构成一个顶层容器(即主窗口)顶层容器包含若干个中间容器每个中间容器包含若干个基本组件按照合理的布局方式将它们组织在一起基本组件可响应发生在其上的事件Java程序设计与实践教程—清华大学出版社169.2Swing容器中间容器JPanel,JScrollPane,JSplitPane,JTabbedPane、JInternalFrame:这些容器提供将有关组件按照某种布局组合在一起,然后放入中间容器或顶层容器的功能JPanel:提供一个面板JScrollPane:是具有滚动条的窗格JSplitPane:是具有拆分功能的窗格JTabbedPane:是带有若干标签的分类窗格JInternalFrame:用于创建内嵌于JFrame中的内部框架Box:提供创建横向/纵向盒子容器的功能Java程序设计与实践教程—清华大学出版社179.2.1JFrame框架类JFrame是java.awt.Frame的子类JFrame上只能有一个唯一的组件JRootPane,调用JFrame.getContentPane()方法可获得JFrame中内置的JRootPane对象java.lang.Object|+--java.awt.Component|+--java.awt.Container|+--java.awt.Window|+--java.awt.Frame|+--javax.swing.JFrameJava程序设计与实践教程—清华大学出版社189.2.1JFrame框架Java程序设计与实践教程—清华大学出版社199.2.1JFrame框架构造方法:JFrame():创建无标题窗口。JFrame(Strings):创建标题名字是字符串s的窗口。例如:JFramef=newJFrame(“Hello”);setDefaultCloseOperation方法:设置单击窗口上的关闭按钮时的事件处理方式。JFrame.DO_NOTHING_ON_CLOSEJFrame.HIDE_ON_CLOSEJFrame.DISPOSE_ON_CLOSEJFrame.EXIT_ON_CLOSEJava程序设计与实践教程—清华大学出版社20表9-5组件类Component的常用方法方法功能说明publicvoidsetBounds(intx,inty,intw,inth)以(x,y)为对象的左上角,以w为宽,以h为高设置对象的显示区域publicvoidsetBackground(Colorc)设置对象的背景色为cpublicvoidsetSize(intwidth,intheight)设置对象的大小publicvoidsetFont(Fontfont)设置对象的字体样式为fontpublicvoidsetForeground(Colorcolor)设置对象的前景色为colorpublicvoidsetVisible(Booleanb)设置组件是否显示publicvoidsetLocation(intx,inty)设置组件显示位置的左上角坐标为(x,y)publicStringgetName()返回对象的名称演示程序:【例9-1】使用JFrame创建的框架窗口。Java程序设计与实践教程—清华大学出版社219.2.1JFrame框架相关类图标类:javax.swing.ImageIcon图像类:java.awt.Image创建图标和图像对象ImageIconii=newImageIcon(“x.gif”);Imageimage=ii.getImage();设置setIconImage(image);Java程序设计与实践教程—清华大学出版社229.2.2JPanel面板面板(JPanel)轻量级容器组件没有标题的中间容器,实现容器的嵌套。默认布局管理器是FlowLayout这类容器不能独立存在,必须通过add()方法添加到一个顶层容器或存在于顶层容器的一个中间容器。面板(JPanel)的大小由它所包含的组件决定当组件个数增加,面板(JPanel)也会随之而增大Java程序设计与实践教程—清华大学出版社23示例:importjava.awt.*;importjavax.swing.*;publicclassJPanelDemoextendsJFrame{publicJPanelgetGUI(){JPanelp=newJPanel();p.add(newJButton(Pressme));returnp;}publicstaticvoidmain(Stringargs[]){JPanelDemojp=newJPanelDemo();jp.setTitle(JPanelDemo);jp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jp.setContentPane(jp.getGUI());jp.setSize(200,200);jp.setVisible(true);}}演示程序:【例9-2】在框架窗口中加入JPanel面板。Java程序设计与实践教程—清华大学出版社249.2.3JDialog对话框JDialog组件(对话窗口)作用:用来显示提示信息或接收用户输入。特点:没有最小化按钮、状态等控制元素。对话框一般都对应于一个顶层窗口,如JFrame窗口。对话框模式分类:有模式:在运行期间不允许用户同应用程序的其他窗口进行交互。通常情况下,程序要在处理完对话框中的数据
本文标题:JavaGUI图形用户界面课件
链接地址:https://www.777doc.com/doc-3820636 .html