http://blog.csdn.net/polarman/article/details/4160045
UI开发中,常常需要在显示长字符串时能在特定宽度的位置自动换行。这个只要使用html来作为JLabel的文本,然后控制JLabel宽度,JLabel就会自动换行。关键是:宽度定了,高度如何取得? JLabel本身并没有提供方案。研究JDK源码后发现了这个方法。
int maxWidth = 100; //限制的宽度
JLabel lbl = new JLabel("<html>长字符串..........</html>");
javax.swing.text.View v = javax.swing.plaf.basic.BasicHTML.createHTMLView(lbl, lbl.getText());
v.setSize(maxWidth, Integer.MAX_VALUE);
int h = (int) v.getMinimumSpan(View.Y_AXIS); //这是取得的高度
下面可以
lbl.setPreferredSize(new Dimension(maxWidth, h));
注意: javax.swing.plaf.basic.BasicHTML.createHTMLView(...) 的调用是很耗时的。如何需要多次计算某个JLabel的高度,最好不要每次都createHTMLView。只要在设定JLabel文本的时候create一个View实例就可以了,然后每次都用这个实例来计算高度。
.
分享到:
相关推荐
实现JLabel中的内容自动换行需要计算文本的宽度,并将其与JLabel的宽度进行比较,然后在合适的地方添加换行符号。这个方法可以帮助我们更好地显示文本,并提高用户体验。 知识点: 1. JLabel是Java Swing中的组件...
为了实现自动换行,我们需要自定义一个渲染器,例如提供一个支持多行文本的`JTextArea`或`JLabel`。`TableCellTextAreaRenderer.java`文件很可能包含了这样一个自定义渲染器的实现。 下面是一个简单的`...
Java中的JLabel是一个非常重要的组件,它用于在用户界面中显示文本、图像或者组合文本与图像。在Swing库中,JLabel是JComponent的子类,提供了多种方式来展示信息,包括简单文本、HTML文本以及图标。在这个“java ...
Java JLabel组件是Java Swing库中的一个核心组件,用于在用户界面上显示文本、图像或两者的组合。在GUI应用程序中,JLabel常被用来呈现提示信息、图标或者简单的静态数据。下面将详细介绍JLabel组件的使用及其相关...
在JavaSE中,如果我们想要在JLabel中实现超链接效果,即点击文本后能够触发特定的动作,如打开一个网页,可以通过自定义组件或扩展JLabel来实现。 首先,我们来看`JLabelLink.java`这个文件,这很可能是自定义的一...
在Java GUI编程中,`JLabel` 是一个用于显示文本、图像或两者组合的重要组件。在许多情况下,我们可能希望在界面中展示图标(Icon),这时`Icon`接口就派上了用场。`Icon`是Java Swing提供的一种图形对象,可以被`...
`JLabel`是其中的一个核心组件,通常用于显示文本、图像或者组合两者。本篇文章将深入探讨如何利用`JLabel`来实现图片的剪接操作,这对于创建复杂的GUI布局或设计具有重要意义。 1. **JLabel的基本介绍** `JLabel`...
在Java的Swing库中,`WrapLayout`是一种布局管理器,它允许组件在容器中自动换行,类似于文本的换行。这个`WrapLayoutTest.rar`文件可能包含了一个示例程序,用于演示如何使用`WrapLayout`。下面将详细解释`...
在这个类的`actionPerformed`方法中,我们将获取当前系统时间,并使用定义好的日期格式进行格式化,最后设置到`JLabel`组件上。 ```java ActionListener taskPerformer = new ActionListener() { public void ...
Java 设置表格的高度和宽度 在 Java 中,使用 JTable 控件来显示和编辑二维单元表。JTable 提供了许多工具来自定义其呈现和编辑,同时提供了这些功能的默认设立。今天,我们将学习如何设置表格的高度和宽度。 设置...
`JLabel`是Java Swing库中的一个核心组件,它用于显示文本、图标或者同时显示两者。在Java项目开发中,`JLabel`常常被用来增强界面的可读性和美观性。本篇文章将深入探讨如何在Java中使用`JLabel`来展示图片,并结合...
Java调用windows字体美化窗口,显示多种字体,用JLabel实现,可以很方便 的调用宋体、黑体、Sanf等多种系统字体,轻松改变窗口界面中的字体风格,从而起到美化窗口界面的作用。代码是这样的: //字体数组: ...
- **自动换行**:Java文本组件默认支持自动换行,当文本超出边界时,会自动换行显示。 3. **文件操作**: - **新建**:创建新的文本文件,使用`File`类和`BufferedWriter`类来创建并写入文件。 - **保存**:将...
Java Swing JLabel标签是Java Swing GUI组件库中的一种基本组件,用于在图形用户界面中显示文本或图片。通过设置JLabel的各种属性,可以控制标签的外观和行为。下面是JLabel的使用方法的详细介绍。 一、JLabel的...
JTextArea支持文本的插入、删除、复制、粘贴等操作,并且可以设置自动换行。为了实现自动换行,开发者需要设置JTextArea的wrapStyleWord属性为true,使其在单词边界自动换行。 对于文件操作,Java提供了java.io....
Java 编程中,Swing 组件 JLabel 是一个基本的组件,用于显示文本、图像或同时显示二者。JLabel 对象可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐。默认情况下,标签在其显示区内垂直居中...
JLabel是Java Swing库中的一个组件类,它用于显示简单的文本或图像。
Java JLabel显示多种字体样式,其实是向大家演示如何在Java的窗口中实现自定义字体,示例中使用了多种字体样式,定义了不同的字体模式,比如字体名称、粗细、是否斜体等,这些都是Java的基础知识范畴吧。
JLabel label = new JLabel("动态生成的文本"); frame.getContentPane().add(label); frame.revalidate(); }); frame.add(button); frame.pack(); frame.setVisible(true); } } ``` 静态文本的动态生成不仅...
- **辅助功能**:自动换行(`wrapButton`)、查看模式(`viewMenu`)等,提高用户的编辑体验。 ### 5. 具体实现细节 - **导入必要的包**:通过`import`语句导入所需的Java类库,如`java.awt.*`、`java.awt.event.*`等...