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属性
属性名
|
数据类型
|
访问性
|
accessibleContext
|
AccessibleContext
|
只读
|
disabledIcon
|
Icon
|
读写绑定
|
displayedMnemonic
|
char
|
读写绑定
|
displaydMnemonicIndex
|
int
|
读写绑定
|
horizontalAlignment
|
int
|
读写绑定
|
horizontalTextPosition
|
int
|
读写绑定
|
icon
|
Icon
|
读写绑定
|
iconTextGap
|
int
|
读写绑定
|
labelFor
|
Component
|
读写绑定
|
text
|
String
|
读写绑定
|
UI
|
LabelUI
|
读写
|
UIClassID
|
String
|
只读
|
verticalAlignment
|
int
|
读写绑定
|
verticalTextPosition
|
int
|
读写绑定
|
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);
displayedMnemonicIndex属性可以使得所强调的记忆键并不一定是标签文本中的第一个记忆键实例。我们所指定的索引表示文本中的位置,而不是记忆键的实例。要强调Username中的第二个e,我们需要指定索引7:label.setDisplayedMnemonicIndex(7)。
4.3.4 自定义JLabel观感
每一个安装的Swing观感都会提供一个同的JLabel外观以及默认的UIResource值设置集合。尽管外观会依据当前的观感而不同,但是在预安装的观感类型集合中区别很小。表4-9显示了JLabel的UIResource相关的属性集合。对于JLabel组件有八个不同的属性。
JLabel UIResource元素
属性字符串
|
对象类型
|
Label.actionMap
|
ActionMap
|
Label.background
|
Color
|
Label.border
|
Border
|
Label.disableForeground
|
Color
|
Label.disableShadow
|
Color
|
Label.font
|
Font
|
Lable.foreground
|
Color
|
LabelUI
|
String
|
分享到:
相关推荐
Swing 是 Java GUI 开发的重要库,它提供了一组组件和工具来创建桌面应用程序。"最全面的Swing文本编辑器"是一个利用Java Swing构建的高级文本编辑器,旨在提供比标准记事本更丰富的功能,如插入图片、鼠标绘图等。...
### Swing组件与容器 Swing提供了多种预定义的组件,如按钮(JButton)、文本框(JTextField)、复选框(JCheckBox)、单选按钮(JRadioButton)、滑动条(JSlider)、菜单(JMenu)等,以及容器如面板(JPanel)、...
1. **JavaSwing组件**:JavaSwing提供了一系列组件,如JButton(按钮)、JLabel(标签)、JTextField(文本框)、JTextArea(文本区域)、JTable(表格)等,用于构建用户交互界面。这些组件允许用户进行数据输入、...
Swing是完全由Java编写的,它提供了一个轻量级的组件模型,与Java AWT(Abstract Window Toolkit)相比,Swing组件具有更好的外观和更多的定制选项。Swing组件通常比AWT组件更现代,且在不同的操作系统上有一致的...
在这个翻译系统中,Swing被用来设计和实现用户界面,包括文本输入框、按钮、标签等组件,用户可以通过这些组件与程序进行交互。 3. **用户界面设计**:良好的用户界面设计对于任何应用都是至关重要的。在这个系统中...
标题中的“Swing界面的屏幕取词”是指在Java Swing环境下实现的一种屏幕选取单词并进行翻译或查询的功能。Swing是Java的一个图形用户界面(GUI)工具包,它提供了丰富的组件和API,允许开发者创建桌面应用程序。屏幕...
总的来说,学习Java Swing需要理解GUI组件、事件处理、布局管理和线程安全等核心概念。通过实际编写代码,结合本文档提供的例子,你将能够逐步掌握Swing,并能创建出美观且功能丰富的桌面应用程序。记得在实践中不断...
8. **Java Swing与JavaFX图形界面**: - **组件与布局管理**:创建窗口、添加控件,理解各种布局管理器如FlowLayout、GridLayout、BorderLayout等。 - **事件处理**:监听用户交互,如按钮点击、键盘输入等事件。 ...
这个程序的核心在于它能够加载用户自定义的词汇库,并利用这些词汇库进行日常用语的翻译。下面我们将深入探讨Java语言特性、翻译算法、词汇库管理和用户接口等方面的知识。 首先,Java是一种跨平台的面向对象的编程...
此方法实现了核心的翻译逻辑: - 首先根据选择的语言方向确定源语言和目标语言。 - 使用`Translate.translate`方法进行翻译,并将结果展示在`toTextArea`文本框中。 - 如果发生异常,则通过日志记录器记录错误信息。...
第9章swing用户界面组件 9.1模型一视图一控制器设计模式 9.2布局管理器慨述 9.2.1边界布局 9.2.2面板 9.2.3网格布局 9.3文本输入 9.3.1文本域 9.3. 2标签与标签组件 9.3 3文本域变化跟踪 ...
`HomeDatabase.jar`可能是一个示例应用或者一个包含核心数据库操作的库,它展示了如何在Swing应用中使用这些数据库组件。这可以帮助开发者快速上手,并理解如何在实际项目中整合这些组件。 `lgpl.txt`和`MultiShow_...
虽然代码示例基于较旧的JDK1.4.2,但其核心原理和编程思想对于现代Java游戏开发仍然具有指导价值。 首先,Java作为游戏开发语言的优势在于其跨平台性、强大的类库支持以及成熟的开发环境。Java的垃圾回收机制和自动...
5. **ant-swing-1.6.5.jar**:Ant Swing库提供了与Java Swing组件交互的任务,如创建和操作GUI应用程序。例如,它可以用于打开或操作Swing应用程序的窗口、组件等。 这些JAR文件共同构成了Ant 1.6.5的完整环境,...
在图形用户界面编程方面,作者会详细介绍Swing组件和布局管理器,以及如何创建复杂的用户界面和响应用户交互。最后,在数据库连接方面,书中会讲解JDBC的基本使用方法和高级特性,包括预处理语句、事务处理以及连接...