Java Swing JLabel标签的使用方法
作者:xietansheng 发布时间:2021-09-16 05:48:13
标签: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);
}
}
结果展示:
来源:https://blog.csdn.net/xietansheng/article/details/74362076


猜你喜欢
- 引言 在一些项目中或是一些特殊的业务场景中,需要用到显示系统的当前时间,以及一些
- 填充背景色,一般可以选择多种不同样式来填充背景,包括填充为纯色背景、渐变背景、图片背景或者纹理背景等。下面的内容将分别介绍通过C#来设置Ex
- Springboot导入本地jar后 打包依赖无法加入1.本地jar包2.pom文件添加自定义jar包导入<!--自定义jar--&g
- 前言Java的StringUtil.isEmpty(str)和"".equals(str)都是用来判断字符串是否为空的方
- 本文实例讲述了Android编程实现给Button添加图片和文字的方法。分享给大家供大家参考,具体如下://为按钮添加图片和文字的方法pub
- 在学习集合框架的时候,初学者很容易练习到学生管理系统、雇员管理体统等练习题。在学习集合框架之前,基本上Java基本语法都学完了,集合框架也从
- 为什么不用SQLite? 原因多种:除了面向对象和关系数据库之间的阻抗不匹配时,SQLite可能是矫枉过正(带来了更多的开销)对于一些简单的
- Kotlin基础教程之Run,标签Label,函数Function-Type在Java中可以使用{}建立一个匿名的代码块,代码块会被正常的执
- 引言我已经一个多星期没碰过电脑了,今日上班,打开电脑的第一件事就是想着写点什么。反正大家都还沉浸在节后的喜悦中,还没进入工作状态,与其浪费时
- 一、C++11智能指针概述在C++中,动态内存的使用时有一定的风险的,因为它没有垃圾回收机制,很容易导致忘记释放内存的问题,具体体现在异常的
- 背景银行跨行转账业务是一个典型分布式事务场景,假设 A 需要跨行转账给 B,那么就涉及两个银行的数据,无法通过一个数据库的本地事务保证转账的
- 环境搭建创建Maven项目。pom.xml文件中引入RocketMQ依赖。<dependencies>  
- 由于机器内存坏了,换了个内存,重新安装了一个64位的Fedora16,把原来的32位的Fedora15格掉了。于是在重新安装Android
- 功能:通过响应UI Textbox 的值向ListView 绑定新添加的纪录。UI XAML 代码<Grid Margin="
- 本文实例讲述了C#中HttpWebRequest的用法。分享给大家供大家参考。具体如下:HttpWebRequest类主要利用HTTP 协议
- 这个可以在Adapter里面写一般写完之后都会调用 public void removeItem(int pos){ &nbs
- mybatis 映射文件中,if标签判断字符串相等,两种方式:因为mybatis映射文件,是使用的ognl表达式,所以在判断字符串sex变量
- init.rc脚本包含5种类型,Action(动作),Commands(命令), Services(服务),Options(选项), Imp
- 前言 安卓系统中,Button是程序和用户进行交互的一个重要控件,今天我们就来简单的对Button进行学习,其中Bu
- 1.本文要解决的问题使用typora打开项目中的md文件2.预期效果选中文件,按下alt+t,调用typora打开此md文件3.IDEA配置