java_swing_入门教程 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《java_swing_入门教程 .pdf》由会员分享,可在线阅读,更多相关《java_swing_入门教程 .pdf(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、swing 入门教程swing 简介(2009-04-20 23:52:40)UI 组件简介在开始学习Swing 之前,必须回答针对真正初学者的一个问题:什么是UI?初学者的答案是“用户界面”。但是因为本教程的目标是要保证您不再只是个初学者,所以我们需要比这个定义更高级的定义。所以,我再次提出这个问题:什么是UI?您可能把它定义成您按下的按钮、打字的地址栏、打开和关闭的窗口,等等,这些都是UI 的元素,但是除了在屏幕上看到的这些之 外,还有更多 都是 UI 元素。比 如鼠 标、键盘、音量、屏幕 颜色、使用的字 体,以 及一个对 象相对于另一个对 象的位置,这些都 包含 在 UI 之中。实际 上
2、,在计算机 和用户的 交互之中扮演角色的任何 对象都是UI 的组成部分。这看 起来足够 简单,但是您 应当惊讶 的是,有许多人 和大型公司已经 为它 努力 了很多年。实际 上,现在有的大学专业的惟一课程就是研究 这种交互。Swing的角色Swing 是 Java 平台 的 UI 它充当处理 用户和 计算机 之间全部交互 的软件。它实际上充当用户和 计算机内部 之间的中间人。Swing 到底 是如何做 这项工作 的呢?它提 供了处理 前面一 节中描述 的 UI 各方 面内容 的 机制:?键盘:Swing 提供了捕捉用户 输入的方法。?颜色:Swing 提供改变在屏幕上看 到的颜色的方法。?打字的
3、地址栏:Swing 提供了文本组件,处理所有普通任务。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 40 页 -?音量:Swing 不太擅长。无论 如何,Swing 为您提 供了创建自己 的 UI 所需要的所 有工 具MVCSwing 甚至走得 更远一步,在 基 本的 UI 原则 之上 又放上了一个 公共的设计模式。这个 设计模式叫 做模型-视图-控 制器(Model-View-Controller,MVC),它试图“把角色分 开”。MVC 让负责显示 的代码、处理 数据 的代码、对 交互 进行响 应并驱动变化 的代码彼此 分离。有点迷惑?如果我为这个 设计模式 提供一个 现实
4、 世界的 非技术性示例,它就比较容易了。请想像 一次 时装秀。把 秀场 当成 UI,假设服装 就 是数据,是展示给 用户的 计算机 信息。现在,假设 这次 时装秀 中 只有一个 人。这个 人设计服装、修改服装、同时还在 T 台上展示这些 服装。这看 起来 可不是一个 构造良好 的或有效率 的设计。现在,假设同样 的 时装秀 采用 MVC 设计模式。这次不是一个人做每件事,而是将角色分开。时装模 特(不要 与 MVC 缩写 中的模型混淆)展示服装。他们扮演 的角色 是视图。他们知道 展示服装(数据 的)适当方 法,但是 根本不 知道如何 创建或设 计服装。另一方面,时装设 计师充当 控制 器。时
5、装设 计师 对于如何 在 T 台上走秀 没有概念,但 他能创建 和操纵 服装。时装模 特和设 计师都能 独立 地 处理 服装,但都 有自己的专业 领域。这就 是 MVC 设 计模式 背后 的概念:让 UI 的每 个方面处理 它擅长的工作。如果您仍然 不明白,那么教程 后 面的 示例 有望消 除您的 迷惑 但是在您 继续 进行 的时候,请记住基本的原则:用可 视组件 显示数据,同时让 其他类操纵 数据。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 40 页 -JComponentSwing 的整个可 视组件 库的基础 构造 块是 JComponent。它是所 有组件 的父类。它是
6、一个抽象 类,所以不能 创建 JComponent,但是 作为 类层次结构的结果,从字面意义来说它包含了 数百个函数,Swing 中的每 个组件 都可以 使 用这些 函数。显然,有些概念 要比其他概念重 要,所以对 于 本教程,需要学习的重要的 东西 是:?JComponent 不仅是 Swing 组件的基类,还是定制组件的基类(有关的更多信息在“中级 Swing”教程中)。?它为所 有组件 提供了绘制的基础架 构 一些方便进行组件定制的东西(同样,在“中级 Swing”中,有关于这个主题的更 多信息)。?它知道 如何处理 所有的键盘按键。所以 类只需要侦听特定的键。?它包含 add()方法,
7、可以添加其他JComponent。换种方式来看,可以把任意 Swing 组件添加 到其他任何 Swing 组件,从而构造 嵌套组件(例如,JPanel 包含 JButton,甚至包含 一些古怪的组合,例如 JMenu 包含 JButton)。简单 的 swing 小部件JLabel名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 40 页 -Swing 库中最基 础的组件 是 JLabel。它所 做的正是您所 期望 的:呆在那儿,看起来很 漂亮,描述 其他 组件。下 图显示 了的JLabel 实际应 用:JLabel不太 吸引 人,但是 仍然 有用。实际 上,在 整个应用程 序中,
8、不 仅把 JLabel 用作文本描述,还将 它用 作图片描述。每当在 Swing 应 用程 序中看到图片的时候,它就有 可能是JLabel。JLabel 对于 Swing 初学者 来说没 有许多 意料 之外的方法。基本的 方法包括设置文本、图片、对 齐以及标签 描述 的其他 组件:?get/setText():获取/设置标签的文本。?get/seticon():获取/设置标签的图片。?get/setHorizontalAlignment():获取/设置 文本的水平位置。?get/setVerticalAlignment():获取/设置文本的垂直位置。?get/setDisplayedMnemo
9、nic():获取/设置标签的访问键(下划线文字)。?get/setLableFor():获取/设置这个标 签附着 的组件,所以当用户按下Alt+访问键时,焦点转移 到指定的组件。JButtonSwing 中的基本 动作组件JButton,是与每 个窗口 中都能看 到的 OK 和 Cancel 一样的按钮;这些按钮所 做 的正是您 希望它们 做的工作 在单击它们之 后,将发生一些 事情。到底会发生 什么 呢?您必须定义 发生 的内容(请 参阅事件,以获得更多信息)。一个JButton 实例 看起来如 下所 示:名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 40 页 -JButto
10、n用来 改变 JButton 属性的方 法与 JLabel 的方 法类似(您可能 发现,在大多 数 Swing 组件中,这些 属性都 类似)。它们 控 制文本、图片和方向:?get/setText():获取/设置标签的文本。?get/seticon():获取/设置标签的图片。?get/setHorizontalAlignment():获取/设置 文本的水平位置。?get/setVerticalAlignment():获取/设置文本的垂直位置。?get/setDisplayedMnemonic():获取/设置访问键(下划线字符),与 Alt 按钮组合时,造成按钮 单击。除了这些 方法,我 还要介
11、 绍 JButton 包含 的 另外 一组方 法。这些 方法利用了按钮的所 有不同状态。状态 是对 组件 进行 描述 的一个 属性,通常采用真/假设 置。在 JButton 中,可以 包含以下可能 状态:活动/不活动、选中/没选 中、鼠标经过/鼠标离开、按下/没按下,等等。另外,可以 组合这些 状态,例如按钮可以在 鼠标经过的同时 被选中。现在您可能 会问自己 用这些 状态 到底 要做 什么。作为示例,请看看您的 浏览器上的 后退按钮。请注意在鼠标经过它的时 候,图片是如何 变化 的,在按下 该 按钮 时,图片又是如何 变化的。这个按钮 利用了不 同的状态。每个 状态 采用不 同 的图片,这是
12、提 示用户 交互 正在 进行 的一 种普遍并且有效的方式。JButton 上的 状态 方 法是:名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 40 页 -?get/setDisabledIcon()?get/setDisableSelectedIcon()?get/setIcon()?get/setPressedIcon()?get/setRolloverIcon()?get/setRolloverSelectedIcon()?get/setSelectedIcon()JTextFieldSwing 中的基本 文本组件 是 JTextField,它 允 许用户在UI 中输入文
13、本。我 肯定您熟悉 文本字 段:要掌握 本教程,则必须 使用一个 文本字 段输入 用户 名和口 令。您输入文 本、删除文本、选中文本、把 文字四处移动 Swing 替您 负责所有这些 工作。作为 UI 开发人员,利用 JJTextField 时,实际 上并不需要 做什么。在任何 情况 下,这是JTextField 实际使 用 时看起来的样子:JTextField在处理JTextField 时,只需要关 注一个 方 法 这应当 是很明显的,这个 方法就是设置文本的 方法:get/setText(),用 于获取/设置 JTextField 中的文本。JFrame迄今 为止,我介 绍了 Swing
14、的三个基本构造 块:标签、按钮和 文本字 段;但是 现在需要个地方 放它们,希望 用户 知道 如何处理 它们。JFrame 类就是做这个的 它是一个 容器,允名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 40 页 -许您把 其他 组件 添加 到它里面,把它们 组织起来,并把它们 呈现给用户。它有许多 其他好处,但是我 认为先看看它的 图片最 简单:JFrameJFrame 实际 上不 仅仅 让您把 组件 放入 其中并呈现给用户。比起它表面上的简 单性,它实际上是Swing 包中 最复杂 的组件。为了 最大程度 地简 化组件,在独立于操作系统的 Swing 组件与 实际 运行这些
15、 组件 的操作系统 之间,JFrame 起着桥梁 的作用。JFrame 在本 机操作系统中 是以窗口的 形 式注册 的,这么 做之 后,就可以 得到许多 熟悉的操作系统 窗口的 特性:最小化/最大化、改变 大小、移动。但是对 于本教程的目标 来说,把JFrame 当作 放置组件 的调色 板就足够 了。可以在JFrame 上调用的一些 修改 属性的方法是:?get/setTitle():获取/设置帧的标题。?get/setState():获取/设置帧的最小化、最大化等状态。?is/setVisible():获取/设置帧的可 视状态,换句话说,是否在屏幕上 显示。?get/setLocation(
16、):获取/设置帧在屏幕上 应当出现的位置。?get/setsize():获取/设置帧的大小。?add():将组件 添加到帧中。简单应用程序名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 40 页 -就像 所有的“x 入门”教程一 样,本教程 也 包含 必不可 少的 HelloWorld 演示。但这个 示例 不仅对 观察 Swing 应用程 序如何工作有 用,还对确保设置正确很有 用。一 旦使这个简 单的应用程 序能够成功运 行,那么之 后的 每个示例 也将能够运行。下 图显示 了完成后的示例:HelloWorld示例第一 步是创建 类。将组件 放在 JFrame 上的Swing
17、应用程 序需要 继承 JFrame 类,如下所示:public class HelloWorld extends JFrame 这样 做之后,就得 到上面 描述 的所 有 JFrame 属性,最重要的是 操作系统 对窗口的本 机支持。下一 步是把 组件 放在屏幕上。在这个示例 中,使用了一个null 布局。在教程的 后面部分,您将学 到更多关于布局 和布局管 理器的 内容。但对 于这个 示例,可以用 数字表示 JFrame 上的 像素位置:public HelloWorld()super();this.setSize(300,200);this.getContentPane().setLayo
18、ut(null);this.add(getJLabel(),null);this.add(getJTextField(),null);this.add(getJButton(),null);名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 40 页 -this.setTitle(HelloWorld);private javax.swing.JLabel getJLabel()if(jLabel=null)jLabel=new javax.swing.JLabel();jLabel.setBounds(34,49,53,18);jLabel.setText(Name:);retur
19、n jLabel;private javax.swing.JTextField getJTextField()if(jTextField=null)jTextField=new javax.swing.JTextField();jTextField.setBounds(96,49,160,20);return jTextField;private javax.swing.JButton getJButton()if(jButton=null)名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 40 页 -jButton=new javax.swing.JButton();jButto
20、n.setBounds(103,110,71,27);jButton.setText(OK);return jButton;现在 组件 都放在了JFrame 上,并且需要在屏幕上 显示JFrame,并让 应用程序可以运行。就像 在所 有的 Java 应用程 序中一 样,必须 添加 一个 main 方法,才能让 Swing 应用程 序运行。在这个main 方法中,只需要 创建HelloWorld 应用程序对象,然后 调用其 setVisible()即可:public static void main(String args)HelloWorld w=new HelloWorld();w.setV
21、isible(true);完成了!这就是创建 应用程 序的所 有过程。完整 代码 如下:名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 40 页 -package cn.edu.jnu.www;import javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;public class HelloWorld extends JFrame private JLabel jLabel;private JTextField jTextField;private JButto
22、n jButton;public HelloWorld()super();this.setSize(300,200);this.getContentPane().setLayout(null);this.add(getJLabel(),null);this.add(getJTextField(),null);this.add(getJButton(),null);this.setTitle(HelloWorld);名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 40 页 -private javax.swing.JLabel getJLabel()if(jLabel=null)
23、jLabel=new javax.swing.JLabel();jLabel.setBounds(34,49,53,18);jLabel.setText(Name:);return jLabel;private javax.swing.JTextField getJTextField()if(jTextField=null)jTextField=new javax.swing.JTextField();jTextField.setBounds(96,49,160,20);return jTextField;private javax.swing.JButton getJButton()if(j
24、Button=null)jButton=new javax.swing.JButton();jButton.setBounds(103,110,71,27);jButton.setText(OK);名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 40 页 -return jButton;public static void main(String args)HelloWorld w=new HelloWorld();w.setVisible(true);附加 的 swing 小部件(上)JComboBox在这一 节中,我将介 绍 Swing 库中的其他 全部组件、如何使 用它们
25、、它们看起来 是什么 样的,等等,这 部分内容应当 让您更 好地了 解 Swing 为 UI 开发人员提供了什么。我们 从 JComboBox 开始介 绍。组合框与下 拉选择相似,区别在于使用组合框时用户可以不从 列表中选择项 目,还可以 选择一个(而且只有一个)项目。在 某些版本的组合框中,还可以 输入自己 的选 择。浏览 器的地址栏 就是一个 示例:它是一个 允许输入自己 选项的组合框。以下是JComboBox 在 Swing 中看起来 的样子:名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 40 页 -JComboBoxJComboBox 的重要 函数包括 JComboB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java_swing_入门教程 2022 java_swing_ 入门教程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内