1

私は printf の使用に慣れていますが、調査の結果、JTextArea でテーブルを設定するために String.Format を使用でき、それは本質的に同じことであると確信しました。リズムゲームアプリ用です。私のコードは次のとおりです。

private final String HEADER = "%-10s%-15s%-90s%-9s%-6s%-9s%-7s%-6s%-9s";
...
ranks.setText("");
ranks.append(String.format(HEADER + "\n", "Rank", "Difficulty", "Song Name",     "Perfects", "Goods", "Averages", "Misses", "Boos", "MaxCombo"));
ranks.append(analyze.toString());
...
return String.format("%-10d%-15d%-90s%-9d%-6d%-9d%-7d%-6d%-9d\n ", rank, difficulty,   songName, perfects, goods, averages, misses, boos, maxCombo);

配列の各コンポーネントに対して、analyze.toString は表示されている文字列を返します。私のフォーマット文字列は、すべてがヘッダー内の文字列であり、ほとんどすべてがテーブル内の整数であることを除いて同一であるため、テーブルが次のように表示される理由がわかりません。

ここに画像の説明を入力

4

1 に答える 1

4

コメントに記載されているように、このような配置が機能するには、固定幅フォント (または等幅フォント)を使用する必要があります。

JTextArea area = new JTextArea();
area.setFont(new Font("Monospaced", Font.PLAIN, 12));

または、Denis Tulskiy が述べたように、JTable コンポーネントを直接使用します。

于 2012-09-17T04:38:20.403 に答える