加载中…
个人资料
淡夜清风
淡夜清风
  • 博客等级:
  • 博客积分:0
  • 博客访问:3,650
  • 关注人气:16
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

核心Swing组件之JLabel类

(2013-03-09 10:22:35)
标签:

杂谈

4.3 JLabel类

我们要近距离查看的第一个真正的Swing组件就是最简单的JLabel。JLabel用作AWT Label的替换组件,但是所能做的事情更多。AWT Label仅限制为单行文本,JLabel可以是文本,图片,或者是两者都有。文本可以是单行文本也可以是HTML文本。另外,JLabel可以支持不同 的允许与禁止的图片。图4-6显示了一些示例JLabel组件。

4.3.1 创建JLabel

JLabel有6个构造函数:

public JLabel()

JLabel label new JLabel();

 

public JLabel(Icon image)

Icon icon new ImageIcon("dog.jpg");

JLabel label new JLabel(icon);

 

public JLabel(Icon image, int horizontalAlignment)

Icon icon new ImageIcon("dog.jpg");

JLabel label new JLabel(icon, JLabel.RIGHT);

 

public JLabel(String text)

JLabel label new JLabel("Dog");

 

public JLabel(String text, int horizontalAlignment)

JLabel label new JLabel("Dog", JLabel.RIGHT);

 

public JLabel(String text, Icon icon, int horizontalAlignment)

Icon icon new ImageIcon("dog.jpg");

JLabel label new JLabel("Dog", icon, JLabel.RIGHT);

通过JLabel的构造函数,我们可以自定义JLabel的三个属性:text, icon或是horizontalAlignment。默认情况下,text与icon属性是空的,而初始的horizontalAlignment属性 设置依赖于构造函数的参数。这些设置可以是JLabel.LEFT,JLabel.CENTER或是JLabel.RIGHT。在大多数情况下,没有指定 horizontalAlignment会导致左对齐标签。然而,如果仅指定了初始图标,则默认的对齐方式为居中对齐。

4.3.2 JLabel属性

表4-8显示了JLabel的14个属性。这些属性允许我们定制JLabel的内容,位置以及行为。


JLabel的内容是文本以及相关联的图片。在一个JLabel内显示图片将会在本章稍后的“接口Icon”一节中进行讨论。然而,我们可以依据于 JLabel是允许或是禁止的而显示不同的图标。在默认情况下,如果允许的图标来自一个Image对象(ImageIcon,在本章稍后进行讨论),则允 许的图标是灰度平衡的。如果允许图标并不是来自于一个Image,当Jlabel被禁止时则没有图标,除非我们手动指定。

JLabel内容的位置是由四个不同的属性来描述的:horizontalAlignment, horizontalTextPosition, verticalAlignment以及verticalTextPosition。horizontalAlignment与 verticalAlignment属性描述了JLabel的内容在其所在的窗口的位置。

水平位置可以是JLabel的LEFT, RIGHT或是CENTER常量。垂直位置可以在TOP, BOTTOM或是CENTER。图4-7显示了各种对齐设置,通过图标显示对齐。

当同时指定了文本与图标时,文本位置属性反应了文本相对于图标的位置。这些属性可以设置为与对齐属性相同的常量。图4-8显示了各种文本属性设置,通过图标反应这些设置。

4.3.3 JLabel事件处理

JLabel并没有特定的事件处理功能。除了通过JComponent继承的事件处理功能以外,JLabel最接近于事件处理的就是displaydMnemonic, displayedMnemonicIndex与labelFor属性的组合使用。

当设置了displayedMnemonic与labelFor属性时,通过配合平台相关的热键按下指定的键时,会使得输入焦点移动到与 labelFor属性相关联的组件上。当一个组件并没有自己的方式来显示记忆键设置时,例如所有的输入文本组件,这种用法就十分用。下面是一个演示示例, 其运行结果如图4-9所示:

JLabel label new JLabel("Username");

JTextField textField new JTextField();

label.setDisplayedMnemonic(KeyEvent.VK_U);

label.setLabelFor(textField);



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有