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

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);


结果在控制台,我想要的格式:

java - String.format在控制台中工作,但不在JOptionPane中-LMLPHP

但这在JOptionPane中:

java - String.format在控制台中工作,但不在JOptionPane中-LMLPHP

我在这里和Google处搜索了一个解决方案,并浏览了oracle教程和文档,但似乎找不到任何东西,这使我觉得自己犯了一个愚蠢的错误。

是吗

最佳答案

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();
}


java - String.format在控制台中工作,但不在JOptionPane中-LMLPHP

08-04 04:27