1、本资料由-大学生创业|创业|创业网 http:/ 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http:/第 7 章 Java 图形用户界面 GUIGUI 全称是 Graphical User Interface,即图形用户界面。是应用程序提供给用户操作的图形界面,包括窗口、菜单、按钮、工具栏和其他各种屏幕元素。Java AWT(Abstract Window Toolkit)提供了图形用户界面和图形在 Java 兼容的操作系统中使用本地窗口系统进行显示。Sun 公司在发布 Java1.2 时,又结合 AWT 的优点,编写出完善和稳定的 Swing。Swing包含 250
2、多个类,是组件和支持类的集合。同时提供了 40 多个组件。 Swing 是建立在 AWT 基础之上的,它用来代替 AWT 中的重量组件,而不是用来替代AWT 本身。它利用了 AWT 的底层组件,包括图形、颜色、字体、工具包和布局管理器等。它使用 AWT 最好的部分来建立一个新的轻量组件集,而丢弃了 AWT 中有问题的重量组件部分,同时还提供了大量有助于开发图形用户界面的附加组件。本章将介绍利用 Java 的 AWT 包和 Swing 包进行图形开发的一般方法。本章要点 Swing 包中常用组件的用法 Java 中的布局管理器 Java 的事件处理机制本章难点 Java 的事件处理机制学习目标
3、了解 Swing 包中组件的基本用法,掌握如命令按扭,文本框,标签框等组件的用法 了解布局管理器的基本使用,掌握流式布局,边界布局等常用布局的使用 了解事件处理的基本方法,掌握动作事件,鼠标事件,键盘事件等常用事件的处理方法7.1 抽象窗口工具包(AWT )与 javax.swing 包概述7.1.1 java.awt 包的子包AWT 是 Java API 的一部分,它为开发图形用户界面提供了实现各种组件、布局管理器和事件处理器的类和接口。用户在导入了 AWT 中的包或类后,通过创建组件、布局管理器和事件处理器的对象,就可以设计出所需要的各种形式的图形用户界面。本资料由-大学生创业|创业|创业
4、网 http:/ 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http:/AWT 由下列包所组成,如表 7-1 所示。表 7-1 AWT 包java.awt 包含用于创建用户界面和绘制图形图像的所有类java.awt.color 提供用于颜色空间的类java.awt.datatransfer 提供在应用程序之间和在应用程序内部传输数据的接口和类java.awt.dnd Drag 和 Drop 是一种直接操作操作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息java.awt.event 提供处理由 AWT 组
5、件所激发的各类事件的接口和类java.awt.font 提供与字体相关的类和接口java.awt.geom 提供用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D 类java.awt.im 提供输入方法框架所需的类和接口java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口java.awt.image 提供创建和修改图像的各种类java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口java.awt.print 为通用的打印 API 提供类和接口7.1.2 javax.swing 包Swing 是第二代
6、GUI 开发工具集,是构筑在 AWT 上层的一组 GUI 组件的集合,为保证可移植性,它完全用 Java 语言编写,与 AWT 相比,Swing 提供了更完整的组件,引入了许多新的特性和能力。Swing 提供更多的组件库,如:JButton ,JLabel 等。这些增强的组件在 Swing 中的名称通常都是在 AWT 组件名前增加了一个“J”字母,如 AWT 中的 Button 在 Swing 中是JButton。大部分的 Swing 组件是用 Java 码直接在画布(canvas)上画出来的。Swing 组件较不依赖目标平台,且使用较少的 NativeGUI 资源,被称之为轻量级组件,而 A
7、WT 组件就被称为重量级组件。当 Swing 组件和 AWT 组件重叠在一起时,AWT 组件会盖在 Swing 组件上,若把这两种组件混合着用,结果可能会产生一些 bug。图 7-1 给出了 AWT 与 Swing 的关系图,图 7-2 列出了 Swing 组件继承关系图,从图中可看出,Swing 的组件都继承 Container,也就是说 Swing 的组件都可当作容器来装其他的组件,而 AWT 的组件就只是组件而已,上面不能放其他的东西。本资料由-大学生创业|创业|创业网 http:/ 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http:/O b j e c tA W
8、 T E v e n tF o n tF o n t M e t r i c sC o l o rG r a p h i c sG r a p h i c s 2 DC o m p o n e n tM e n u c o m p o n e n tT e x t C o m p o n e n tB u t t o nC a n v a sC h e c k B o xC h o i c eL a b e lL i s tS c r o l l b a rC o n t a i n e rM e n u B a rM e n u I t e mG r i d L a y o u tF l o
9、 w L a y o u tC a r d L a y o u tG r i d B a g L a y o u tM e n uC h e c k b o x M e n u I t e mT e x t A r e aT e x t F i e l dP a n e lW i n d o w sF i l e D i a l o gS c r o l l p a n eF r a m eD i a l o gJ A p p l e tJ W i n d o wJ F r a m eJ D i a l o gJ C o m p o n e n tA p p l e tA p p l e t
10、C o n t e x tA p p l e t S t u bA u d i o C l i pR o o t P a n eC o n t a i n e r类抽象类接口L a y o u t M a n a g e rL a y o u t M a n a g e r 2B o r d e r L a y o u tJ a v a . a p p l e t 包轻量级组件重量级组件J a v a x . s w i n g 包图 7-1 AWT 与 Swing 关系图本资料由-大学生创业|创业|创业网 http:/ 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http
11、:/J C o m p o n e n tJ R o o t P a n eJ P o p u p M e n uJ L a b e lJ I n t e r n a l F r a m eJ T o o l T i pA b s t r a c t B u t t o nJ a v a . s w i n g . t e x t .j T e x t C o m p o n e n tJ T o o l B a rJ L a y e r e d P a n eJ M e n u B a rJ S e p a r a t o rJ P o g r e s s B a rJ p o p u p
12、m e n u . S e p e r a t o rJ P a n e lJ M e n u I t e mJ B u t t o nJ T a b b e d P a n eJ T o g g l e B u t t o nJ D e s k T o p a n eJ S p l i t P a n eR o o t P a n eC o n t a i n e rJ S l i d e rJ E d i t o r p a n eJ T e x t F i e l dJ T e x t A r e aJ O p t i o n P a n eJ S c r o l l B a rJ S
13、c r o l l P a n e J V i e w P o tJ F i l e C h o o s e rJ T r e e J C o l o r C h o s s e rJ C o m b o B o xJ T a b l e J L i s tJ C h e c k B o x M e n u I t e mJ M e n uJ R a d i o B u t t o n M e n u I t e mJ C h e c k B o xJ R a d i o B u t t o nJ T e x t P a n eJ P a s s w o r d F i e l d图 7-2
14、Swing 组件继承关系图从关系图可看见一个重要的事实:Swing 的组件都继承 Container,也就是说 Swing 的组件都可当作容器来装其他的组件,而 AWT 的组件就只是组件而已,上面不能放其他的东西。以 Button 为例,AWT 的 Button 只有两种构造函数:Button()Button(String label)也就是说 Button 上面只能放字符串,而 JButton 就有 5 种形式,不仅可以放文字,还可以放图片。JButton()JButton(Action a)JButton(Icon icon)JButton(String text)JButton(Stri
15、ng text, Icon icon)AWT 组件会耗掉较多的资源,且在跨平台上会有些问题,所以在实际应用中,Swing中的组件用的更多一些,本书也主要以介绍 Swing 中的组件为主。本资料由-大学生创业|创业|创业网 http:/ 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http:/7.2 常用 Swing 组件及 AWT 组件7.2.1 Component (组件)类java.lang.Objectjava.awt.ComponentComponent 类是 AWT 包中的一个抽象类,通过继承它,可以得到各种功能的组件,Java 中的图形组件大多都是 Compon
16、ent 类的子类。图形组件能够在屏幕上显示一定的图形,用户可通过这些组件与程序进行信息交互,方便、快捷地设计出可视化的图形用户界面。JComponet 类继承于 Component 类,我们常用的 Swing 组件,如 JLabel,JButton 等都是 JComponet 类的子类。由于 Component 类是所有图形组件类的父类,它包含许多图形组件类共有的成员变量和方法。1.常用成员变量LEFT_ALIGNMENT 左边对齐方式RIGHT_ALIGNMENT 右边对齐方式2.构造方法Component() 构造方法3.常用方法void add(Component comp) 在容器的末
17、尾添加组件 comp注意:该方法的参数 comp 的类为 Component,而 Component 类是所有组件类的父类,即该方法被所有 Component 类的子类继承。因此,该方法可用于在任何组件类对象中添加任何组件类对象。void setBackground(Color color) 设置背影颜色void setBounds(int x, int y, int w, int h) 设置所占矩形的位置和尺寸void setFont(Font) 设置字体void setForeground(Color c) 设置前景颜色void setVisible(boolean b) 设置组件是否可见
18、。True 可见,false 不可见void setLocation(int x,int y) 移动组件到左上角位置为(x,y)void setSize(int w,int h) 重设组件的大小,其 w 为宽,h 为高注意:上述方法定义在 Component 类中,而 Component 类是所有组件类的父类,因此这些方法被所有 Component 类的子类继承。Component 类还定义了许多绘图方法,Component 类的绘图方法将在 7.4 节中介绍。7.2.2 Container(容器类)java.lang.Object本资料由-大学生创业|创业|创业网 http:/ 减肥药排行榜
19、|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http:/java.awt.Componentjava.awt.ContainerContainer 类是 AWT 包中的类,主要用来放置其他组件,所以称作“容器” 。由于Container 类继承自 Component 类,所以它既拥有 Component 类的所有功能,同时,它还具有“容器”的一些特征。1构造方法Container() 构造方法2常用方法void remove(Component comp) 删除容器中的组件void setLayout(LayoutManager mgr) 设置容器的布局管理器为 mgr从图 7-1 中
20、可以看见,AWT 包中容器类的派生子类有:框架(Frame) 、面板(Panel) 、窗口(Window ) 、对话框、 (Dialog)等。7.2.3 Swing 容器及组件Swing 组件分为顶层容器,中间层容器和基本组件三种类型。顶层容器有四个,分别是 JWindow,JFrame,JDialog,JApplet,这四个顶层容器都是属于重量级组件(Swing 中只有这四个是属重量级组件) 。顶层容器的重要性在于:每一个GUI 组件都需被包含在一个顶层容器的包容层级中。顶层容器可以放入 menubar,并且含有一个默认的 contentPane 可供 GUI 组件放入其中。在 Swing
21、中有一个特别的类 JComponent,作为所有 Swing 组件的顶层抽象类,里面定义了许多 Swing 组件共同的特性。JComponent 继承自 java.awt.Container。所以每一个继承自 JComponent 的 Swing 组件也都是一种容器。中间层容器介于顶层容器与一般 Swing 组件间,是被专门设计来盛装别的组件用的,可以让被承载的组件能合适地,有组织地呈现出来。常用的中间层容器有 JMenuBar,JOptionPane,JPanel 等。有些容器并非一层,而由几层嵌板组成,常用的嵌板有:拆分嵌板(JSplitPane),内容嵌板, 页签式嵌板(TabbedPa
22、ne)等。拆分嵌板:按指定的方向和方式拆分其内的两个子组件,一个拆分嵌板只能拆分两个子组件。内容嵌板: JFrame,Jwindow,JDialog 是有多层嵌板的容器,如果要在这些容器上面放置组件,必须放置在他们的内容嵌板(pane)上。通过函数 getContentPane()可得到当前容器的内容嵌板。页签式嵌板:这个嵌板如同卡片,提供文件夹式的页签,当前只显示一页,如要进入下一页,只要点击上面的页签。有些如 JPanel 是可以直接放置组件的容器,所以不需要使用嵌板。如果要按自己的想法排列放在容器上的组件,我们必须使用到布局管理器(Layout)来进行管理。布局管理器将在下节中介绍。1.
23、JFrame(窗体)类java.lang.Objectjava.awt.Component本资料由-大学生创业|创业|创业网 http:/ 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http:/java.awt.Containerjava.awt.Windowjava.awt.Framejavax.swing.JFrame窗体是一个带有边框、标题栏和菜单的图形容器。是图形开发中不可缺少的容器之一。JFrame 继承了 AWT 中的 Frame 类。但是,和 Frame 类不同,我们不能直接在 JFrame 上增加子部件和设置布局管理器,而且必须先调用 JFrame.get
24、ContentPane()方法,通过该方法返回 JFrame 中自带的 JRootPane 对象,JRootPane 是 JFrame 惟一的子组件,我们只能在这个JRootPane 对象上增加子组件和设置布局管理器。一般我们是先将组件先添加在 JPanel 上,然后再将 JPanel 添加到 JFrame 上。JFrame 类在响应用户关闭窗体时,默认的简单方式是隐藏这个窗体,并没有真正关闭这个窗体。我们可以在 windowClosing 事件处理方法中,调用这个窗口对象的 dispose 方法来真正地关闭这个窗口。或者调用 setDefaultCloseOperation(int )方法,
25、设置 JFrame 对这个事件的处理方式为 JFrame.EXIT_ON_CLOSE,当用户点击 JFrame 上的关闭窗口按钮时,直接关闭这个框架窗口并结束程序的运行。(1)常用变量static int EXIT_ON_CLOSE 退出应用程序后的默认窗口关闭操作,用于 setDefaultCloseOperation(int )方法中。(2)构造方法JFrame() 构造一个初始时不可见的新窗体。 JFrame(GraphicsConfiguration gc) 以屏幕设备的指定 GraphicsConfiguration 和空白标题创建一个 Frame。 JFrame(String ti
26、tle) 创建一个新的、初始不可见的、具有指定标题的 Frame。 JFrame(String title, GraphicsConfiguration gc) 创建一个具有指定标题和指定屏幕设备的 GraphicsConfiguration 的 JFrame。(3)常用方法Container getContentPane() 返回此窗体的容器对象 JMenuBar getJMenuBar() 返回此窗体上设置的菜单栏。 JLayeredPane getLayeredPane() 返回此窗体的 layeredPane 对象。 void remove(Component comp) 从该容器中移
27、除指定组件。 void setContentPane(Container contentPane) 设置 contentPane 属性。 void setDefaultCloseOperation(int operation) 本资料由-大学生创业|创业|创业网 http:/ 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http:/设置用户在此窗体上发起 “close“ 时默认执行的操作。 void setIconImage(Image image) 设置此 frame 要显示在最小化图标中的图像。 void setJMenuBar(JMenuBar menubar) 设置
28、此窗体的菜单栏。 void update(Graphics g) 只是调用 paint(g)。【例 7-1】创建框架窗体程序/文件名:Exam7-1.javaimport javax.swing.*;public class Exam7_1public static void main(String args)JFrame jfra=new JFrame(“我的框架“); /创建一个 frame,窗体标题为“我的框架”JPanel jpa=new JPanel(); /创建一个面板jpa.add(new JLabel(“欢迎您!“); /在面板上添加一个标签,内容为“欢迎您”jfra.add(
29、“Center“,jpa); /将面板添加到框架窗体的中间jfra.setLocation(200,100); /设置窗体的显示位置jfra.setSize(400,300); /设置窗体的大小jfra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /设置关闭窗体 jfra.setVisible(true); /显示窗体 运行结果如图 7-3 所示:图 7-3 窗体界面设计本资料由-大学生创业|创业|创业网 http:/ 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http:/程序分析:(1)该实例简单地创建了一个窗体,只在
30、窗体的面板上添加了一个标签。(2)设置了窗体的显示位置和大小。(3)添加组件到 JFrame 窗体一般是先添加到容器类组件 JPanel 上,再将 JPanel 添加到窗体上。2.JWindow(窗口)类java.lang.Objectjava.awt.Componentjava.awt.Containerjava.awt.Windowjavax.swing.JWindow窗口是最基本的组件。窗口没有边框、标题栏和菜单栏,而且不能调整大小。窗口最好的应用是在其他组件上的一个无边矩形区域内显示某些内容。象 Office 系列软件,在启动时都会显示一个版本信息窗口。(1)构造方法JWindow()
31、 创建未指定所有者的窗口。 JWindow(Frame owner) 使用指定的所有者框架创建窗口。 JWindow(GraphicsConfiguration gc) 使用屏幕设备的指定 GraphicsConfiguration 创建窗口。 JWindow(Window owner) 使用指定的所有者窗口创建窗口。 JWindow(Window owner, GraphicsConfiguration gc) 使用屏幕设备的指定所有者窗口和 GraphicsConfiguration 创建窗口。(2)常用方法JWindows 的常用方法多数同 JFrame 相同,此处不再重复。【例 7-2
32、】创建一个窗口/文件名:Exam7_2.javaimport javax.swing.*;public class Exam7_2public static void main(String args)JWindow jwin=new JWindow(); /创建一个 windowJPanel jpa=new JPanel(); /创建一个面板jpa.add(new JLabel(“亲爱的同学,JAVA 欢迎您! “); /在面板上添加一个标签jwin.add(“Center“,jpa); /将面板添加到框架窗体的中间jwin.pack(); /调整此窗口的大小,以适合其子组件的首选大小和布局
33、jwin.setVisible(true); /显示窗体本资料由-大学生创业|创业|创业网 http:/ 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http:/ 程序分析:(1)该窗口显示后,可以使用其它控制方式来隐藏或关闭这个窗口,也可以通过线程的方式使该窗体显示一段时间后再自动消失。(2)程序没有设置窗体的位置,显示时会显示于屏幕的左上角。也没有设置窗体的大小,利用 pack()方法,可以设定本窗体的大小自动根据子组件的大小自动调整。3JPanel 类java.lang.Objectjava.awt.Componentjava.awt.Containerjavax.s
34、wing.JComponentjavax.swing.JPanelJPanel 是一个放置其他图形组件(包括其它 JPanel)的容器,不能独立存在,必须被添加到其他容器中(如 JFrame) 。JPanel 是一个空白容器类,提供容纳组件的空间,通常用于集成其他的若干组件,使这些组件形成一个有机的整体,再增加到别的容器上。在向窗体添加组件时,一般是先将组件添加到 JPanel 上,再将 JPanel 添加到窗体上。另外 JPanel 还能实现画布的功能,可以在 JPanel 上画图形。常用的构造方法:JPanel() 创建具有双缓冲和流布局的新 JPanel。 JPanel(boolean
35、isDoubleBuffered) 创建具有 FlowLayout 和指定缓冲策略的新 JPanel。 JPanel(LayoutManager layout) 创建具有指定布局管理器的新缓冲 JPanel。 JPanel(LayoutManager layout, boolean isDoubleBuffered) 创建具有指定布局管理器和缓冲策略的新 JPanel。7.2.4 Java 常用组件(一)按钮与文字输入Java 常用组件有很多,都是 JComponent 类的子类,如 JLabel(标签)类、JButton(按钮)类、 JTextField(文本输入行)类、JTextArea(
36、多行文本输入区)类、JCheckbox(复选框)类、JList (列表)类、JCombobox(下拉列表)类等。实际上,任何一个容器类对象本身也可以放置在任何一个容器类对象中。1JButton(按钮)类JButton 类是使用最多的一个组件,可以用来创建带标签的按钮。按钮是图形界面中用的最多的一个控件,可完成用户想要完成的一些功能。(1)构造方法本资料由-大学生创业|创业|创业网 http:/ 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http:/JButton() 创建不带有设置文本或图标的按钮。 JButton(Action a) 创建一个按钮,其属性从所提供的 Ac
37、tion 中获取。 JButton(Icon icon) 创建一个带图标的按钮。 JButton(String text) 创建一个带文本的按钮。 JButton(String text, Icon icon) 创建一个带初始文本和图标的按钮。(2)常用方法void setText(String text) 设置按钮的文本。 String getText() 返回按钮的文本 void setIcon(Icon defaultIcon) 设置按钮的默认图标。 Icon getIcon() 返回默认图标。 void setPressedIcon(Icon pressedIcon) 设置按钮的按下图
38、标。 Icon getPressedIcon() 返回按钮的按下图标。 boolean isSelected() 返回按钮的状态。 void setFocusPainted(boolean b) 设置 paintFocus 属性,对于要绘制的焦点状态,该属性必须为 true。 void setSelected(boolean b) 设置按钮的状态。 void setSelectedIcon(Icon selectedIcon) 设置按钮的选择图标。 boolean isDefaultButton() 获得 defaultButton 属性的值,如果为 true 则意味着此按钮是其 JRootP
39、ane 的当前默认按钮。 void setDefaultCapable(boolean defaultCapable) 设置 defaultCapable 属性,该属性确定此按钮是否可以是其根窗格的默认按钮。2JLabel(标签)类JLabel 类是一个用来显示文本的类。文本就是一个字符串。在程序中指定要显示的字符串,但该字符串在运行时不能被用户修改。标签不对输入事件作出反应。因此,它无法获得键盘焦点。JLabel 对象还可以显示图像或同时显示文本与图像二者。可以通过设置垂直和水平对本资料由-大学生创业|创业|创业网 http:/ 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药
40、|http:/齐方式,指定标签显示区中标签内容在何处对齐。默认情况下,标签在其显示区内垂直居中对齐。默认情况下,只显示文本的标签是开始边对齐;而只显示图像的标签则水平居中对齐。同时还可以指定文本相对于图像的位置。默认情况下,文本位于图像的结尾边上,文本和图像都垂直对齐。 根据标签的 ComponentOrientation 属性值确定其开始边和结尾边。目前,默认的 ComponentOrientation 设置将开始边映射到左边,将结尾边映射到右边。 使用 setIconTextGap 方法指定文本和图像之间应该出现多少像素。默认情况下为 4 个像素。(1)构造方法JLabel() 创建无图像
41、并且其标题为空字符串的 JLabel。 JLabel(Icon image) 创建具有指定图像的 JLabel 实例。 JLabel(Icon image, int horizontalAlignment) 创建具有指定图像和水平对齐方式的 JLabel 实例。 JLabel(String text) 创建具有指定文本的 JLabel 实例。 JLabel(String text, Icon icon, int horizontalAlignment) 创建具有指定文本、图像和水平对齐方式的 JLabel 实例。 JLabel(String text, int horizontalAlignm
42、ent) 创建具有指定文本和水平对齐方式的 JLabel 实例。(2)常用方法String getText() 返回该标签所显示的文本字符串。 void setText(String text) 定义此组件将要显示的单行文本。 Icon getIcon() 返回该标签显示的图形图像(字形、图标) 。 void setIcon(Icon icon) 定义此组件将要显示的图标。 int getIconTextGap() 返回此标签中显示的文本和图标之间的间隔量。 void setIconTextGap(int iconTextGap) 如果同时设置了图标和文本属性,则此属性定义它们之间的间隔。 i
43、nt getHorizontalAlignment() 返回标签内容沿 X 轴的对齐方式。 int getVerticalAlignment() 返回标签内容沿 Y 轴的对齐方式。 void setLabelFor(Component c) 设置将标签添加到的组件。 本资料由-大学生创业|创业|创业网 http:/ 减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http:/JLabel 控件除了可以用于在窗体上显示文字之外,还可以用来显示图片。显示图片需要用到 ImageIcon 类创建的对象。例 7-3 制作了一个利用 JLabel 显示图片的窗体。【例 7-3】显示图片窗
44、体/文件名:Exam7_3.javaimport javax.swing.*;public class Exam7_3public static void main(String args)JFrame jfra=new JFrame(); /定义一个 JFrame 框架JPanel jpa=new JPanel(); /定义一个面板JLabel jl=new JLabel(); /定义一个标签ImageIcon im=new ImageIcon(“a.gif“);/定义一个图片对象,图片对象的文件名为a.gifjl.setIcon(im); /设置标签的图片属性jpa.add(jl); /将
45、标签添加到面板上jfra.getContentPane().add(jpa); /将面板添加到框架窗体上jfra.setSize(400,300); /设置窗体的大小jfra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /设置关闭窗体 jfra.setVisible(true); /显示窗体 程序分析:(1)此处 a.gif 文件与本类保存在同一个目录下。(2)用 JLabel 控件显示图片有两种方法,一种是利用 JLabel 的 setIcon()方法指定,本例就是这样用的,还有一种方法就是直接在构造方法中指定图象文件。程序运行结果如图 7
46、-4 所示。图 7-4 使用 JLabel 显示图片3JTextField(单行文本框)类JTextField 类用来创建允许用户编辑的单行文本组件。用户可以通过这类组件输入和编辑字符串信息。JTextField 与 JLabel 的本质差别是,程序运行时,JTextField 可以获得焦点,而 JLabel 不能。JTextField 可用作程序的输入。JTextField 的水平对齐方式可以设置为左对齐、前端对齐、居中对齐、右对齐或尾部对齐。右对齐/尾部对齐在所需的字段文本尺寸小于为它分配的尺寸时使用。这是由 setHorizontalAlignment 和 getHorizontalAlignment 方法确定的。默认情况下为前端对齐。本资料由-大学生创业|创业|创业网 http:/