2016/05/02 Swing

简单的swing小部件

JLabel组件

Swing 库中最基础的组件是 JLabel。它所做的正是您所期望的:呆在那儿,看起来很漂亮,描述其他组件。下图显示了的 JLabel 实际应用:

JLabel

不太吸引人,但是仍然有用。实际上,在整个应用程序中,不仅把 JLabel 用作文本描述,还将它用作图片描述。每当在 Swing 应用程序中看到图片的时候,它就有可能是 JLabel。JLabel 对于 Swing 初学者来说没有许多意料之外的方法。基本的方法包括设置文本、图片、对齐以及标签描述的其他组件:

· get/setText(): 获取/设置标签的文本。

· get/seticon(): 获取/设置标签的图片。

· get/setHorizontalAlignment(): 获取/设置文本的水平位置。

· get/setVerticalAlignment(): 获取/设置文本的垂直位置。

· get/setDisplayedMnemonic(): 获取/设置标签的访问键(下划线文字)。

· get/setLableFor(): 获取/设置这个标签附着的组件,所以当用户按下 Alt+访问键时,焦点转移到指定的组件。

 JButton组件

Swing 中的基本动作组件 JButton,是与每个窗口中都能看到的 OK 和 Cancel 一样的按钮;这些按钮所做的正是您希望它们做的工作 —— 在单击它们之后,将发生一些事情。到底会发生什么呢?您必须定义发生的内容(请参阅 事件,以获得更多信息)。

用来改变 JButton 属性的方法与 JLabel 的方法类似(您可能发现,在大多数 Swing 组件中,这些属性都类似)。它们控制文本、图片和方向:

· get/setText(): 获取/设置标签的文本。

· get/seticon(): 获取/设置标签的图片。

· get/setHorizontalAlignment(): 获取/设置文本的水平位置。

· get/setVerticalAlignment(): 获取/设置文本的垂直位置。

· get/setDisplayedMnemonic(): 获取/设置访问键(下划线字符),与 Alt 按钮组合时,造成按钮单击。

除了这些方法,我还要介绍 JButton 包含的另外一组方法。这些方法利用了按钮的所有不同状态。状态是对组件进行描述的一个属性,通常采用真/假设置。在 JButton 中,可以包含以下可能状态:活动/不活动、选中/没选中、鼠标经过/鼠标离开、按下/没按下,等等。另外,可以组合这些状态,例如按钮可以在鼠标经过的同时被选中。现在您可能会问自己用这些状态到底要做什么。作为示例,请看看您的浏览器上的后退按钮。请注意在鼠标经过它的时候,图片是如何变化的,在按下该按钮时,图片又是如何变化的。这个按钮利用了不同的状态。每个状态采用不同的图片,这是提示用户交互正在进行的一种普遍并且有效的方式。JButton 上的状态方法是:

· get/setDisabledIcon()

· get/setDisableSelectedIcon()

· get/setIcon()

· get/setPressedIcon()

· get/setRolloverIcon()

· get/setRolloverSelectedIcon()

· get/setSelectedIcon()

JTextField组件

Swing 中的基本文本组件是 JTextField,它允许用户在 UI 中输入文本。我肯定您熟悉文本字段:要掌握本教程,则必须使用一个文本字段输入用户名和口令。您输入文本、删除文本、选中文本、把文字四处移动 —— Swing 替您负责所有这些工作。作为 UI 开发人员,利用 JJTextField 时,实际上并不需要做什么。

在任何情况下,这是 JTextField 实际使用时看起来的样子:

JTextField

在处理 JTextField 时,只需要关注一个方法 —— 这应当是很明显的,这个方法就是设置文本的方法: get/setText(),用于获取/设置 JTextField 中的文本。

JFrame组件

JFrame

迄今为止,我介绍了 Swing 的三个基本构造块:标签、按钮和文本字段;但是现在需要个地方放它们,希望用户知道如何处理它们。JFrame 类就是做这个的——它是一个容器,允许您把其他组件添加到它里面,把它们组织起来,并把它们呈现给用户。

JFrame 实际上不仅仅让您把组件放入其中并呈现给用户。比起它表面上的简单性,它实际上是 Swing 包中最复杂的组件。为了最大程度地简化组件,在独立于操作系统的 Swing 组件与实际运行这些组件的操作系统之间,JFrame 起着桥梁的作用。JFrame 在本机操作系统中是以窗口的形式注册的,这么做之后,就可以得到许多熟悉的操作系统窗口的特性:最小化/最大化、改变大小、移动。但是对于本教程的目标来说,把 JFrame 当作放置组件的调色板就足够了。可以在 JFrame 上调用的一些修改属性的方法是:

· get/setTitle(): 获取/设置帧的标题。

· get/setState(): 获取/设置帧的最小化、最大化等状态。

· is/setVisible(): 获取/设置帧的可视状态,换句话说,是否在屏幕上显示。

· get/setLocation(): 获取/设置帧在屏幕上应当出现的位置。

· get/setsize(): 获取/设置帧的大小。

· add(): 将组件添加到帧中。

时间: 2025-01-01 02:55:02

2016/05/02 Swing的相关文章

2016 05 02 开启博客人生

趁着这次的五一小长假,在家好好的思考了一下我的人生,未来,发展方向.但是千里之行始于足下,所以我决定先从坚持写blog开始吧. 那么我的blog都将给大家分享什么内容呢? 我自己想了一下应该包括 Java android sql 这三个大的方向吧.我个人觉得我未来的生活应该就靠这三位大哥吃饭了,还是好好的跟他们先搞好关系再说. 我的blog分享的针对人群是哪些呢? 1,刚毕业或者即将毕业的大学毕业生. 2,android从业者或者兴趣爱好者. 3,我自己. 我希望我能把我的一些经验和知识分享给大

2016.05工作日志

05.01 昨天已经解决json传递的问题,今天本来打算悠闲地看看C++,学学OS.结果早上习惯性地摆弄了下日向blog项目代码,发现一个问题,就是user类save失败.是mysql主键自增长设置失败.花了些时间解决,感觉自己这方面太j8弱了. 然后下午翻了翻<不得贪胜>,打算看看电影莱昂纳多的<荒野猎人>,结果发现这啥j8电影.就起床学C++.OS了. 05.02 基于刚制定的“圣战”目标,今天发表五月展望,目前的目标三个,一个是日向blog,一个是自制OS,一个是C++.ja

2016.05.26-2016.06.02这周工作时间和内容

这周学习的内容:这周和平常是一样的,我们在课堂上学习了三个小时,老师讲了用例图,类图,序列图,状态图.我们了解了用例图,用例图(use case diagram)就是由主角.用例以及它们之间的关系构成的图.该图说明了用例模型中的关系.类图(Class diagram)由许多(静态)说明性的模型 元素(例如类.包和它们之间的关系,这些元素和它们的内容互相连接)组成.类图可以组织在(并且属于)包中,仅显示特定包中的相关内容.类图(Class diagram)是最常用的 UML图,显示出类.接口以及它

2016.05互金平台移动端影响力50强榜单报告!

(文章来源:盈灿咨询) 6月21日下午,盈灿咨询在京举办互金平台移动端影响力报告暨2015网贷蓝皮书出版发布会,首次独家发布了<互金平台移动端影响力榜单TOP50>,北京大学汇丰商学院中小企业研究中心执行主任王家卓.网贷之家首席研究员&盈灿咨询总经理马骏.盈灿咨询副总经理于百程.爱钱进CEO杨帆等嘉宾出席了本次活动并做主题分享. 据悉,该报告选取了300余家互金平台5月的移动端数据,以平台在移动端的推广目的和移动互联网特点为支点,以指标.评分.分析为撬棍,展示了目前行业内互金平台的移动

2016/05/04(反射)

反射:重点----每天都用反射,但是每天都不写反射     Java的反射技术是java程序的特征之一,它允许运行中的Java程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性. 使用反射可以获得Java类中各个成员的名称并显示出来.简单的说,反射就是让你可以通过名称来得到对象(类,属性,方法)的技术. 反射的作用? 可以通过反射机制发现对象的类型,发现类型的方法/属性/构造器? 可以创建对象并访问任意对象方法和属性等 主要点:运行时探究和使用编译时未知的类 Dog d1 = new

分布式技术一周技术动态 2016.05.29

分布式系统实践 1. 网易视频云:新一代列式存储格式Parquet的最佳实践 https://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=2650755579&idx=1&sn=640c55c7f2800be48271cdfb1880be99&scene=0&key=8d8120cb97983fad266c6ac303c9142a6b1da8ee51bea2e187dba1380070fd7707bdef8da1404

Murano Weekly Meeting 2016.05.31

Meeting time: 2016.May.31 1:00~2:00 Chairperson:  Kirill Zaitsev, from Mirantis Meeting summary: 1.Action Item Review update the wiki to mention new CPLs. kzaitsev_mb ping stable reviewers to review the backports. 2.Murano packages move into murano-a

Murano Weekly Meeting 2016.05.10

Meeting time: 2016.May.10 1:00~2:00 Chairperson:  Serg Melikyan, from Mirantis Meeting summary: 1. murano contributors rules Six usage rule: use it only when really necessary (for example if existing code will now work in Py3 at all. If it is a matte

分布式方向一周技术动态 2016.05.08

分布式系统实践 1. 使用Basic-Paxos协议的日志同步与恢复 http://oceanbase.org.cn/?p=90 要点: 这篇文章和上期给大家推荐的Hadoop的HA方案有着很多相同的地方, 基本思路就是使用paxos协议来同步数据库的binlog从而实现多个数据库实例的一致性. 同时这篇文章还有后续两篇相关文章, 分别对basic-paxos协议的优化以及在线实现成员变更的算法. 我们之前对paxos协议的应用基本上都限制在了基于zookeeper(基于ZAB一致性协议)的使用