具有自动多线支持的消息对话框?

jav*_*red 2 swing

我正在使用JOptionPane.showMessageDialog(和showConfirmDialog其他方法)这个方法的问题 - 它不格式化文本.如果我传递了很长的消息 - 它将在一行中显示(可能比屏幕分辨率更宽).当然我可以\n在消息中使用,但这对我来说是额外的工作.

我想要一个对话框,它会自动为我格式化文本.

And*_*son 6

我想要一个对话框,它会自动为我格式化文本.

使用HTML和CSS来限制宽度.

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

public class LabelWidthTest {

    public static void main(String[] args) {
        SwingUtilities.invokeLater( new Runnable() {
            public void run() {
                String title = "<html><body style='width: 200px; padding: 5px;'>"
                    + "<h1>Do U C Me?</h1>"
                    + "Here is a long string that will wrap.  "
                    + "The effect we want is a multi-line label.";

                JLabel textLabel = new JLabel(title);
                JOptionPane.showMessageDialog(null, textLabel);

            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

但是如果string已经是多行(包含一个或多个\n),它只格式化字符串的第一行.

替换所有\n<br>&\n\n<p>.

我丢失了"<"和">"符号.如果string包含这样的符号 - 它们将不会显示在对话框中

对于<&>,将它们转换为HTML等价物,&lt;&&gt;.