您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Java6程序设计实践教程ch7
窗内网,免费看视频,轻松学编程窗内网,免费看视频,轻松学编程开发窗口应用程序,有两个选择,一个是使用AWT,一个是使用JFC/Swing。AWT是Swing的基础,Swing的产生主要原因就是AWT不能满足图形化用户界面发展的需要。Swing组件几乎都是轻量组件,与重量组件相比,没有本地的对等组件,不像重量组件要在它们自己的本地不透明窗体中绘制,轻量组件在它们的重量组件的窗口中绘制。本章首先介绍JavaGUI图形界面发展历程,然后介绍Java中常用容器,如JFrame、JDialog和JPanel等,接下来介绍Swing常用组件,如按钮、文本框、组合框和菜单等。最后介绍JavaGUI中常用布局管理器和高级组件。窗内网,免费看视频,轻松学编程学习目标了解JavaGUI发展历程掌握Swing概念掌握Swing类库结构掌握容器组件概念熟练掌握JFrame、JDialog和JPanel等容器熟练掌握Swing的常用组件熟练掌握布局管理器的使用掌握Swing高级组件的使用窗内网,免费看视频,轻松学编程概述图形用户界面(GraphicalUserInterface,GUI)应用程序是一种使用标准Java组件GUI组件集。与所有Java代码一样,由于GUI是图形用户界面(GraphicsUserInterface)的英文缩写。GUI程序给用户提供了一个直观而且操作方便、快捷的用户环境。提起GUI,自然会想到经常使用的Windows操作系统。以在任何平台上运行,所以JavaGUI应用程序简化了创建桌面应用程序的任务。窗内网,免费看视频,轻松学编程年,发布了AWT(AbstractWindowingToolkit)库,用来构建图形用户界面应用程序。一个具有下拉菜单,命令按钮,滚动条以及其他常见的GUI控件的应用程序正式诞生了。它能够在各种操作系统上运行,而不必重新编译成针对某一平台的二进制代码,包括MicrosoftWindows,Sun’sownSolaris,Apple’sMacOS以及Linux。从JavaGUI的发展和演化来看,出现了3个主要的构建窗口程序库:AWT、Swing和SWT(StandardWidgetToolkit)。在本节中我们将查看和分析这3个库中的每一个库,并且我们将一起来看一看第4个库--JFace。其实JFace不算一个真正的构建窗口程序库,而是在基于SWT之上的一个抽象层。窗内网,免费看视频,轻松学编程动态链接库(dll)WindowsGUI应用程序SWTGTKLinux图7-1SWT与操作系统窗内网,免费看视频,轻松学编程的关系窗内网,免费看视频,轻松学编程(JFC)的一部分,它是试图解决AWT缺点的一个尝试。在Swing中,Sun开发了一个经过仔细设计的、灵活而强大的GUI工具包。Swing在AWT组件基础上构建。所有Swing组件实际上也是AWT的一部分。Swing使用了AWT的事件模型和支持类,例如Colors、Images和Graphics。Swing将对主机控件的依赖性降至了最低。实际上,Swing只为诸如窗口和框架之类的顶层组件使用对等体。大部分组件(JComponent及其子类)都使用纯Java代码来模拟。这意味着Swing天生就可以在所有主机之间很好地进行移植。因此,Swing通常看起来并不像是本地程序。实际上,它有很多外观,有些模拟(尽管通常并不精确)不同主机的外观,有些则提供了独特的外观。窗内网,免费看视频,轻松学编程对基于对等体的组件使用的术语是重量级(heavyweight),对于模拟的组件使用的术语是轻量级(lightweight)。实际上,Swing可以支持在一个GUI中混合使用重量级组件和轻量级组件,例如,在一个JContainer中混合使用AWT和Swing控件,但是如果组件产生了重叠,就必须注意绘制这些控件的顺序。Swing无法充分利用硬件GUI加速器和专用主机GUI操作的优点。结果是Swing应用程序可能比本地GUI的程序运行速度都慢。Sun花费了大量的精力来改进最近版本的Swing(JavaV1.4和1.5)的性能,这种缺点正在变得日益微弱。由于Swing的设计更加健壮,因此其代码基础也更坚实。这意味着它可以在一台健壮的机器上比AWT和SWT上运行得更好。窗内网,免费看视频,轻松学编程概念除了具有更多的组件、布局管理器和事件之外,Swing还有很多特性使得自己比AWT的功能更加强大。因为大部分Swing组件采用了MVC结构设计,故下面介绍时从这个角度说明。下面是更为重要的几个特性:模型与视图和控件分离可编程外观呈现器和编辑器可访问性窗内网,免费看视频,轻松学编程(JavaFoundationClasses)是一组客户端图形、GUI(图形用户界面)和相关的编程任务的标准JavaAPI的松散集合,而Swing是JFC的一个组成部分。Swing以AWT为基础,并有一套独立于操作系统的图形界面类库。Swing围绕着JComponent的新组件构建,而JComponent则由AWT的容器类扩展而来。其组织结构如图7-3所示:窗内网,免费看视频,轻松学编程窗内网,免费看视频,轻松学编程图形用户界面时,都有用于放置可视化组件的主窗口,即用来放置其他组件的组件,如Windows窗口中的主窗体。通常这类组件称为Container容器,其主要作用就是将组件组合在一起。容器可以分为两类,顶层容器和中间容器。窗内网,免费看视频,轻松学编程容器概述顶层容器是进行图形编程的基础,一切图形化的东西,都必然包括在顶层容器中。顶层容器是任何图形界面程序都要涉及的主窗口,是显示并承载组件的容器组件。在Swing中,我们有三种可以使用的顶层容器,它们分别是:JFrame、JDialog和JApplet。JFrame:用于框架窗口的类,此窗口带有边框、标题、用于关闭和最小化窗口的图标等。带GUI的应用程序通常至少使用一个框架窗口。JDialog:用于对话框的类。JApplet:用于使用Swing组件的JavaApplet的类。窗内网,免费看视频,轻松学编程容器概述中间容器是容器组件的一种,可以承载其他组件。但中间容器不能独立显示,必须依附于其他的顶层容器。常见的中间容器有:JPanel、JScrollPane、JTabbedPane和JToolBarJPanel:最灵活、最常用的中间容器。JScrollPane:与JPane类似,但还可在大的组件或可扩展组件周围提供滚动条。JTabbedPane:包含多个组件,但一次只显示一个组件。用户可在组件之间方便地切换。JToolBar:按行或列排列一组组件(通常是按钮)窗内网,免费看视频,轻松学编程程序中可以作为容器的类,都是继承Container类。中间容器和顶层容器在AWT包和Swing包中继承Container类的继承关系,如图7-4所示:ContainerWindowPanelJComponentFrameDialogJFrameJDialogAppletJAppletJPanelJScrollPane图7-4容器类组织结构图窗内网,免费看视频,轻松学编程组件的顶级容器,相当于Windows窗口中的主窗体。该组件用于在Swing程序中创建窗体,JFrame类继承了AWT的Frame类,支持Swing体系结构的高级GUI属性。JFrame用来设计类似于Windows系统中的窗口形式的界面。窗内网,免费看视频,轻松学编程主窗口方法介绍JFrame类的常用构造方法如表7-2所示:表7-2JFrame常用构造方法构造方法名称概述JFrame()构造一个初始时不可见的新窗体。JFrame(Stringtitle)创建一个新的、初始不可见的、具有指定标题的JFrame。窗内网,免费看视频,轻松学编程对话框来说,属于增强型对话框。JDialog对话框和JFrame对话框一样,都属于顶层容器,可以单独显示。JDialog是创建对话框窗口的主要类。可以使用此类创建自定义的对话框。该类继承了AWT的Dialog类,支持Swing体系结构的高级GUI属性。窗内网,免费看视频,轻松学编程是一个中间容器组件,可以向其中添加其他的GUI组件(如按钮JButton组件);但是JPanel不是顶层容器,因此在屏幕上显示JPanel,必须将它添加到一个顶层容器(如JFrame)中。我们可以在JPanel中放置按钮、文本框等非容器组件,甚至可以在JPanel中再放置若干个JPanel组件。JPanel组件具有中间容器的特点,如无边框等。JPanel的缺省布局为流式布局FlowLayout。窗内网,免费看视频,轻松学编程显示数据库数据方法介绍JPanel的常用的构造方法如下所示:JPanel()JPanel(LayoutManagerlayout)第一个构造方法表示创建具有双缓冲和流布局的新JPanel,第二个方法表示创建具有指定布局管理器的新缓冲JPanel。一般情况下,JPanel类使用其父类中的方法就可以完成编程任务。如果需要JPanel面板中添加组件,可以使用add(Componentcomp)方法来实现。窗内网,免费看视频,轻松学编程的扩展,它提供了许多新的图形界面组件。Swing组件以“J”开头,除了有与AWT类似的按钮(JButton)、标签(JLabel)、复选框(JCheckBox)、菜单(JMenu)等基本组件外,还增加了一个丰富的高层组件集合,如表格(JTable)、树(JTree)。Swing组件都是AWT的Container类的直接子类和间接子类。窗内网,免费看视频,轻松学编程设计中,按钮是经常使用的组件之一。Swing的按钮相对于AWT中Button类提供了更多的功能,JButton类允许用图标、字符串
本文标题:Java6程序设计实践教程ch7
链接地址:https://www.777doc.com/doc-2878542 .html