Java Swing JLabel标签的使用方法

 更新时间:2019年12月06日 11:47:42   作者:xietansheng  
这篇文章主要介绍了Java Swing JLabel标签的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1. 概述

官方JavaDocsApi: javax.swing.JLabel

JLabel,标签。标签主要用于展示 文本 或 图片,也可以 同时显示文本和图片。

JLabel 的构造方法:

/*
 * 构造方法中的参数含义:
 *   text: 标签显示的 文本
 *   image: 标签显示的 图片
 *   horizontalAlignment: 标签内容(在标签内)的水平对其方式(竖直方向默认居中, 可通过方法设置)
 */
JLabel()

JLabel(String text)

JLabel(String text, int horizontalAlignment)

JLabel(Icon image) 

JLabel(Icon image, int horizontalAlignment) 

JLabel(String text, Icon image, int horizontalAlignment) 

JLabel 的常用方法:

// 设置 文本 和 图片
void setText(String text)
void setIcon(Icon icon)

// 设置文本相对于图片的位置(文本默认在图片右边垂直居中)
void setHorizontalTextPosition(int textPosition)
void setVerticalTextPosition(int textPosition)

// 设置标签内容(在标签内)的对其方式(默认左对齐并垂直居中)
void setHorizontalAlignment(int alignment)
void setVerticalAlignment(int alignment)

// 设置图片和文本之间的间隙
void setIconTextGap(int iconTextGap)

/* 
 * 下面的方法定义在 JComponent 基类中
 */

// 设置文本的字体类型、样式 和 大小
void setFont(Font font)

// 设置字体颜色
void setForeground(Color fg)

// 当鼠标移动到组件上时显示的提示文本
void setToolTipText(String text)

// 设置组件的背景
void setBackground(Color bg)

// 设置组件是否可见
void setVisible(boolean visible)

// 设置组件是否为 不透明,JLabel默认为透明,设置为不透明后才能显示背景
void setOpaque(boolean isOpaque)

// 设置组件的 首选 大小
void setPreferredSize(Dimension preferredSize)

// 设置组件的 最小 大小
void setMinimumSize(Dimension minimumSize)

// 设置组件的 最大 大小
void setMaximumSize(Dimension maximumSize)

/*
 * 上面的对齐参数具体的取值常量参考 DocsApi;
 * setXXX(...) 方法往往都对应着 getXXX() 方法。
 */

显示图片时,Icon实例的创建(一般创建ImageIcon,ImageIcon 实现了 Icon):

ImageIcon 的构造方法:

// 使用 本地路径 图片创建 ImageIcon
ImageIcon(String filename)

// 使用 网络路径 图片创建 ImageIcon
ImageIcon(URL location)

// 使用图片文件的字节数组创建 ImageIcon
ImageIcon(byte[] imageData)

// 使用 java.awt.Image 实例创建 ImageIcon
ImageIcon(java.awt.Image image)

java.awt.Image 实例的创建:

// 方法一: 通过 java.awt.Toolkit 工具类来读取本地、网络 或 内存中 的 图片(支持 GIF、JPEG 或 PNG)
Image image = Toolkit.getDefaultToolkit().getImage(String filename);
Image image = Toolkit.getDefaultToolkit().getImage(URL url);
Image image = Toolkit.getDefaultToolkit().createImage(byte[] imageData);

// 方法二: 通过 javax.imageio.ImageIO 工具类读取本地、网络 或 内存中 的 图片(BufferedImage 继承自 Image)
BufferedImage bufImage = ImageIO.read(File input);
BufferedImage bufImage = ImageIO.read(URL input);
BufferedImage bufImage = ImageIO.read(InputStream input);

/*
 * PS_01: 图片宽高: BufferedImage 可以通过 bufImage.getWidth() 和 bufImage.getHeight() 方法直接获取图片的宽高;
 *         Image 获取宽高需要另外传入一个 ImageObserver 参数。
 *
 * PS_02: 图片裁剪: BufferedImage 通过 bufImage.getSubimage(int x, int y, int w, int h) 方法可以截取图片的
 *         任意一部分,返回一个新的 BufferedImage 实例。
 *
 * PS_03: 图片缩放: Image 通过 image.getScaledInstance(int width, int height, int hints) 方法可以对图片进行
 *         缩放,返回新的一个 Image 实例。
 */

2. 代码实例

package com.xiets.swing;

import javax.swing.*;
import java.awt.*;

public class Main {

  public static void main(String[] args) {
    JFrame jf = new JFrame("测试窗口");
    jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    // 创建内容面板,默认使用流式布局
    JPanel panel = new JPanel();

    /*
     * 只显示文本
     */
    JLabel label01 = new JLabel();
    label01.setText("Only Text");
    label01.setFont(new Font(null, Font.PLAIN, 25)); // 设置字体,null 表示使用默认字体
    panel.add(label01);

    /*
     * 只显示图片
     */
    JLabel label02 = new JLabel();
    label02.setIcon(new ImageIcon("demo01.jpg"));
    panel.add(label02);

    /*
     * 同时显示文本和图片
     */
    JLabel label03 = new JLabel();
    label03.setText("文本和图片");
    label03.setIcon(new ImageIcon("demo02.jpg"));
    label03.setHorizontalTextPosition(SwingConstants.CENTER);  // 水平方向文本在图片中心
    label03.setVerticalTextPosition(SwingConstants.BOTTOM);   // 垂直方向文本在图片下方
    panel.add(label03);

    jf.setContentPane(panel);
    jf.pack();
    jf.setLocationRelativeTo(null);
    jf.setVisible(true);
  }

}

结果展示:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Spring事务中的事务传播行为使用方式详解

    Spring事务中的事务传播行为使用方式详解

    Spring框架作为一个轻量级的开源框架,在企业应用开发中被广泛使用,在Spring事务管理中,事务传播行为是非常重要的一部分,它定义了方法如何参与到已经存在的事务中或者如何开启新的事务,本文将详细介绍Spring事务中的几种事务传播行为,详细讲解具体使用方法
    2023-06-06
  • Java编程之内置观察者模式实例详解

    Java编程之内置观察者模式实例详解

    这篇文章主要介绍了Java编程之内置观察者模式,结合实例形式较为详细的分析了java内置观察者模式的原理、实现方法及相关注意事项,需要的朋友可以参考下
    2017-08-08
  • Java简易登录注册功能实现代码解析

    Java简易登录注册功能实现代码解析

    这篇文章主要介绍了Java简易登录注册功能实现代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • IDEA之项目run按钮为灰色,无法运行问题

    IDEA之项目run按钮为灰色,无法运行问题

    这篇文章主要介绍了IDEA之项目run按钮为灰色,无法运行问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Java中的ReadWriteLock高效处理并发读写操作实例探究

    Java中的ReadWriteLock高效处理并发读写操作实例探究

    这篇文章主要为大家介绍了Java中的ReadWriteLock高效处理并发读写操作实例探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • 详解java迭代器模式

    详解java迭代器模式

    这篇文章主要介绍了java迭代器模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • springboot2.6.4集成swagger3.0遇到的坑及解决方法

    springboot2.6.4集成swagger3.0遇到的坑及解决方法

    这篇文章主要介绍了springboot2.6.4如何集成swagger3.0,在集成的过程中遇到很多问题,本文给大家分享四种问题及相应的解决方案,需要的朋友可以参考下
    2022-03-03
  • spring+Jpa多数据源配置的方法示例

    spring+Jpa多数据源配置的方法示例

    这篇文章主要介绍了spring+Jpa多数据源配置的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 浅析Bean Searcher 与 MyBatis Plus 区别介绍

    浅析Bean Searcher 与 MyBatis Plus 区别介绍

    Bean Searcher号称任何复杂的查询都可以一行代码搞定,但 Mybatis Plus 似乎也有类似的动态查询功能,最近火起的 Bean Searcher 与 MyBatis Plus 倒底有啥区别?带着这个问题一起通过本文学习下吧
    2022-05-05
  • Java+element实现excel的导入和导出

    Java+element实现excel的导入和导出

    本文主要介绍了Java+element实现excel的导入和导出,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04

最新评论