Swing Dialogbox html格式化'切断'一半的内容

时间:2016-05-24 05:22:20

标签: java html swing jlabel joptionpane

我有一个对话框,我希望将其作为特定部分粗体。 我知道我必须用html执行此操作,但是当我这样做时,我似乎丢失了一半的对话框消息。

原创(不粗体):

public class View extends JFrame {
    private final static String NEW_LINE = System
            .getProperty("line.separator");
    public void someMethodDisplayDialog(String string1, String string2, String string3) {
        JOptionPane.showMessageDialog(this,
                "An problem occured: " + string1
                        + NEW_LINE 
                        + string2 + " Error: "
                        + string3,
                "Error",
                JOptionPane.ERROR_MESSAGE);
    }
}

让我们说:

  • string1 = "Wrong Key!"
  • string2 = "Input"
  • string = "Z key pressed"

在对话框中显示:


出现问题:密钥错误!
输入错误:按下Z键 我想加粗" 输入错误:"部分。我有这段代码:

        JOptionPane.showMessageDialog(this,
                "An problem occured: " + string1
                        + NEW_LINE + "<html><b>" 
                        + string2 + " Error:</b></html> "
                        + string3,
                "Error",
                JOptionPane.ERROR_MESSAGE);

运行时,这会使我想要的更加大胆,但&#39;会切断其余部分,例如。未显示string3 我已尝试在</b></html>之后添加结束string3代码。
显示一切,但string3也是粗体,我不想要!

我在这里错过了一些明显的东西吗?我不确定为什么会这样?

2 个答案:

答案 0 :(得分:2)

正如@Andrew Thompson所说,你的消息必须<html>标签开头。所以你的代码应该是这样的:

        JOptionPane.showMessageDialog(this,
            "<html>An problem occured: " + string1
                    + "<br><b>" 
                    + string2 + " Error:</b> "
                    + string3 + "</html>",
            "Error",
            JOptionPane.ERROR_MESSAGE);

答案 1 :(得分:0)

在string3后添加一个+号 编辑:你的/ html标签正在切断字符串3

JOptionPane.showMessageDialog(this,
                "An problem occured: " + string1
                        + NEW_LINE + "<html><b>" 
                        + string2 + " Error:</b>"
                        + string3 + "Error:</html>",
                JOptionPane.ERROR_MESSAGE);