String.format在控制台中工作但不是JOptionPane

时间:2017-07-19 18:07:49

标签: java swing

我以为我只是一个白痴,而且毫无疑问我仍然是,但这段代码:

String name = (String)getValueAt(selectedRow,0)+" "+(String)getValueAt(selectedRow,1)+
                " "+(String)getValueAt(selectedRow,2);   
String city = ((String)getValueAt(selectedRow,4));
String message = String.format("Name: %30s\nCity: %30s", name, city);
System.out.println(message);
JOptionPane.showMessageDialog(CandidateTable.this, message);

在控制台中生成这个,我想要的格式:

enter image description here

但是,在JOptionPane中:

enter image description here

我在这里搜索了一个解决方案和google,并查看了oracle教程和文档,但似乎找不到任何东西,这让我觉得我犯了一个愚蠢的错误。

我是吗?

1 个答案:

答案 0 :(得分:1)

private String[][] data = {
    {"Name:", "Mr Nick Woodward"},
    {"City:", "Reading"},
    {"Long:", "Supercalafragalisticexpyaladocious"},
};

private String getTable() {
    StringBuilder sb = new StringBuilder("<html><table>");

    for (String[] row : data) {
        sb.append("<tr>");
        sb.append("<td>");
        sb.append(row[0]);
        sb.append("</td>");
        sb.append("<td style='text-align: right;'>");
        sb.append(row[1]);
        sb.append("</td>");
        sb.append("</tr>");
    }

    return sb.toString();
}

enter image description here