• 核心Swing组件(三)


    4.3 JLabel类

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

    Swing_4_6

    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显示了各种文本属性设置,通过图标反应这些设置。

    Swing_4_7

    Swing_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);

    Swing_4_9

    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

  • 相关阅读:
    读取手机硬件信息
    Android存储空间不足的解决办法
    Android实现系统重新启动
    使用PackageManager获得应用(包)信息
    获得屏幕尺寸
    Android获取ROOT权限
    Android调用系统自带的设置界面
    TabHost的使用
    ListActivity的使用
    Ubuntu密码错误的问题
  • 原文地址:https://www.cnblogs.com/dyllove98/p/2461921.html
Copyright © 2020-2023  润新知