如何根据文字大小包装文字
g.drawString("Hello, please help me in wrapping the text", 100, 100);
输出 - 直线文字:
必需输出 - 基于文本长度的包装文本:
如何实现所需的输出?在计算它时浪费了很多时间,但没有用,并且非常感谢解释。
答案 0 :(得分:2)
使用HTML包装单词是解决此问题的最简单方法。
import java.awt.*;
import java.awt.image.BufferedImage;
import javax.swing.*;
public class LabelRenderTest {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
String title = "<html><body style='"
+ "text-align: center; width: 100px; padding: 5px;'>"
+ "<p>Hello, please help me in<br>wrapping the text";
BufferedImage image = new BufferedImage(
200,
100,
BufferedImage.TYPE_INT_RGB);
JLabel textLabel = new JLabel(title);
textLabel.setSize(textLabel.getPreferredSize());
textLabel.setForeground(Color.WHITE);
Graphics2D g = image.createGraphics();
textLabel.paint(g);
g.dispose();
JOptionPane.showMessageDialog(null, new JLabel(new ImageIcon(image)));
}
});
}
}