Java编程swing组件JLabel详解以及使用示例
作者:玉开Sir 发布时间:2023-12-15 22:28:50
JLabel 对象可以显示文本、图像或同时显示二者。可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐。默认情况下,标签在其显示区内垂直居中对齐。默认情况下,只显示文本的标签是开始边对齐;而只显示图像的标签则水平居中对齐。 还可以指定文本相对于图像的位置。默认情况下,文本位于图像的结尾边上,文本和图像都垂直对齐。
构造方法介绍:
JLabel() 创建无图像并且其标题为空字符串的 JLabel。
JLabel(Icon image) 创建具有指定图像的 JLabel 实例。
JLabel(Icon image, int horizontalAlignment) 创建具有指定图像和水平对齐方式的 JLabel 实例。
JLabel(String text) 创建具有指定文本的 JLabel 实例。
JLabel(String text, Icon icon, int horizontalAlignment) 创建具有指定文本、图像和水平对齐方式的 JLabel 实例。
JLabel(String text, int horizontalAlignment) 创建具有指定文本和水平对齐方式的 JLabel 实例。
常用方法:
getHorizontalAlignment() 返回标签内容沿 X 轴的对齐方式。
getHorizontalTextPosition() 返回标签的文本相对其图像的水平位置。
getIcon() 返回该标签显示的图形图像(字形、图标)。 getText() 返回该标签所显示的文本字符串。
setHorizontalAlignment(int alignment) 设置标签内容沿 X 轴的对齐方式。
setHorizontalTextPosition(int textPosition) 设置标签的文本相对其图像的水平位置。
setIcon(Icon icon) 定义此组件将要显示的图标。
setText(String text) 定义此组件将要显示的单行文本。 setUI(LabelUI ui) 设置呈现此组件的 L&F 对象。
setVerticalAlignment(int alignment) 设置标签内容沿 Y 轴的对齐方式。
setVerticalTextPosition(int textPosition) 设置标签的文本相对其图像的垂直位置。
在JLabel中增加图片和文本
import java.awt.FlowLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
public class MixingIconLabel {
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame();
frame.setTitle("JLabel Test");
frame.setLayout(new FlowLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ImageIcon imageIcon = new ImageIcon("yourFile.gif");
JLabel label = new JLabel("Mixed", imageIcon, SwingConstants.RIGHT);
frame.add(label);
frame.pack();
frame.setVisible(true);
}
}
JLabel中增加HTML文本
import javax.swing.JFrame;
import javax.swing.JLabel;
public class HTMLLabel {
public static void main(String[] a) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel label = new JLabel("<html>bold <br> plain</html>");
frame.add(label);
frame.setSize(300, 200);
frame.setVisible(true);
}
}
重写JLabel
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.Serializable;
import javax.swing.JLabel;
public class Colors extends JLabel implements Serializable {
transient private Color color;
// not persistent
private Boolean rectangular;
// is persistent
public Colors() {
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me) {
change();
}
}
);
rectangular = false;
setSize(200, 100);
change();
}
public Boolean getRectangular() {
return rectangular;
}
public void setRectangular(Boolean flag) {
this.rectangular = flag;
repaint();
}
public void change() {
color = randomColor();
repaint();
}
private Color randomColor() {
int r = (int) (255 * Math.random());
int g = (int) (255 * Math.random());
int b = (int) (255 * Math.random());
return new Color(r, g, b);
}
public void paint(Graphics g) {
Dimension d = getSize();
int h = d.height;
int w = d.width;
g.setColor(color);
if (rectangular) {
g.fillRect(0, 0, w - 1, h - 1);
} else {
g.fillOval(0, 0, w - 1, h - 1);
}
}
}
将JLabel增加到JScrollPane中便于显示大图片
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
public class ScrollPaneFrame {
public static void main(String[] args) {
JFrame frame = new JFrame();
JLabel image = new JLabel(new ImageIcon("A.jpg"));
frame.getContentPane().add(new JScrollPane(image));
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
JLabel中增加unicode编码
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Unicode {
public static void main(String args[]) {
UnicodeJFrame unicodeJFrame = new UnicodeJFrame();
unicodeJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
unicodeJFrame.setSize(350, 250);
unicodeJFrame.setVisible(true);
}
}
class UnicodeJFrame extends JFrame {
public UnicodeJFrame() {
super("Demonstrating Unicode");
setLayout(new GridLayout(8, 1));
JLabel englishJLabel = new JLabel("/u0057/u0065/u006C/u0063"
+ "/u006F/u006D/u0065/u0020/u0074/u006F/u0020Unicode/u0021");
englishJLabel.setToolTipText("This is English");
add(englishJLabel);
JLabel chineseJLabel = new JLabel("/u6B22/u8FCE/u4F7F/u7528" + "/u0020/u0020Unicode/u0021");
chineseJLabel.setToolTipText("This is Traditional Chinese");
add(chineseJLabel);
JLabel cyrillicJLabel = new JLabel("/u0414/u043E/u0431/u0440"
+ "/u043E/u0020/u043F/u043E/u0436/u0430/u043B/u043E/u0432"
+ "/u0430/u0422/u044A/u0020/u0432/u0020Unicode/u0021");
cyrillicJLabel.setToolTipText("This is Russian");
add(cyrillicJLabel);
JLabel frenchJLabel = new JLabel("/u0042/u0069/u0065/u006E/u0076"
+ "/u0065/u006E/u0075/u0065/u0020/u0061/u0075/u0020Unicode/u0021");
frenchJLabel.setToolTipText("This is French");
add(frenchJLabel);
JLabel germanJLabel = new JLabel("/u0057/u0069/u006C/u006B/u006F"
+ "/u006D/u006D/u0065/u006E/u0020/u007A/u0075/u0020Unicode/u0021");
germanJLabel.setToolTipText("This is German");
add(germanJLabel);
JLabel japaneseJLabel = new JLabel("Unicode/u3078/u3087/u3045" + "/u3053/u305D/u0021");
japaneseJLabel.setToolTipText("This is Japanese");
add(japaneseJLabel);
JLabel portugueseJLabel = new JLabel("/u0053/u00E9/u006A/u0061"
+ "/u0020/u0042/u0065/u006D/u0076/u0069/u006E/u0064/u006F/u0020" + "Unicode/u0021");
portugueseJLabel.setToolTipText("This is Portuguese");
add(portugueseJLabel);
JLabel spanishJLabel = new JLabel("/u0042/u0069/u0065/u006E"
+ "/u0076/u0065/u006E/u0069/u0064/u0061/u0020/u0061/u0020" + "Unicode/u0021");
spanishJLabel.setToolTipText("This is Spanish");
add(spanishJLabel);
}
}
总结
《Java编程实现swing圆形按钮实例代码》
《浅谈标签和JLabel类构造方法》
《Java图形化界面设计之容器(JFrame)详解》
如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
来源:http://outofmemory.cn/code-snippet/1121/swing-JLabel-explain-in-detail-yiji-usage-shili


猜你喜欢
- pageHelper是一个非常方便实用的 Java 分页插件,可以轻松实现数据库分页查询。而在一对多的情况下,如果要实现主表和从表的联合分页
- 前言值类型和引用类型,是c#比较基础,也必须掌握的知识点,但是也不是那么轻易就能掌握,今天跟着老胡一起来看看吧。 典型类型首先我们
- 引言本文是关于Spark优化性能与内存使用的最佳实践,翻译整理自Tuning - Spark 3.3.2 Documentation。由于s
- 这篇文章主要介绍了java的package和import机制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习
- 前言:来这家公司上班后,开始使用Git作为项目版本控制系统,由于以前用的是SVN,所以对Git也就简单学习了一下。但是,实践出真知,当开始使
- 一、迭代key&value第一种方式:迭代entrySet1.方法一/** * entrySet集合for-each循环(
- 项目中有需要多次统计 某些集合中 的某个属性值,所以考虑封装一个方法,让其其定义实现计算方式。 话不多说,看代码:1、封装的自定义集合工具类
- Android 中Activity 之间传递参数1.传递简单数据在A Activity中findViewById(R.id.startBAc
- 使用场景在 Java 应用中,对于访问频率高,更新少的数据,通常的方案是将这类数据加入缓存中。相对从数据库中读取来说,读缓存效率会有很大提升
- 本文实例讲述了Android简单Button事件响应综合提示控件Toast应用。分享给大家供大家参考,具体如下:前面讲述了在main.xml
- 目录猜测可能原因问题排查问题原因总结class Main { public static void main(St
- 目录引言编译环境及说明图片素材分割事件处理OnPaint事件鼠标交互事件代码汇总引言我们有时候会在程序的文件夹里看见一些图标,而这些图标恰好
- 概述这里是Mac环境,如果是window环境的同学,在环境搭建和工具上可以选择Window环境的。先看看需要到的工具;1、apktool:h
- 实践过程效果代码public partial class Form1 : Form{ private HookEx
- 作者:sparkdev出处:http://www.cnblogs.com/sparkdev/注意,本文所说的断点续传特指 HTTP 协议中的
- 一、简介   Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布
- Freemarker 3种循环模式1. map循环举例:<#if vo.urlMap??>
- 一、背景新做了一个的需求,需要在SpringBoot项目中引入了多个依赖,然后就感觉idea下载依赖包的时间很漫长,然后我就网上找了解决办法
- 一、基于配置的异常处理SpringMVC 提供了一个处理控制器方法执行过程中所出现的异常的接口:HandlerExceptionResolv
- 导语如下图所示,这是一个导航选择弹框。进行单项选择,然后会监听回调选择的事件。问题是Android的RadioButton是一般是放在Rad