この形式でJLabelテキストを表示する必要があります。
Hoffenheim 1 : 0 Koeln
Bayern 2 : 1 HSV
私はこれを成し遂げることができません。私はString.format()
運がなくて試しました。何かアドバイス?
HTMLを使用できます。詳細については、SwingコンポーネントでHTMLを使用する方法をお読みください。たとえば、次のようなテーブルを作成できます。
import javax.swing.JLabel;
import javax.swing.JOptionPane;
public class StringDemo {
public static void main(String arg[]){
StringBuilder buff = new StringBuilder();
buff.append("<html><table>");
buff.append(String.format("<tr><td align='right'>%s</td><td>:</td><td>%s</td></tr>", "Hoffenheim 1", "0 Koeln"));
buff.append(String.format("<tr><td align='right'>%s</td><td>:</td><td>%s</td></tr>", "Bayern 2", "1 HSV"));
buff.append("</table></html>");
JOptionPane.showMessageDialog(null, new JLabel(buff.toString()));
}
}
String.format()
文字列を別の方法で表示するのではなく、特別にフォーマットされた文字列にコンテンツを挿入するために使用されます。ただし、JLabelsおよびその他のSwingコンポーネントはHTMLを許可しますが、必要なものが得られる場合があります。
new JLabel("<html><pre> Hoffenheim 1 : 0 Koeln</pre></html>");
new JLabel("<html><pre> Bayern 2 : 1 HSV</pre></html>");
とは言うものの、あなたが求めているのは、テキストをそれらのコロンの周りに集中させることであり、単にそれらを端から一定の数のスペースだけ離すことではないようです。それは少し難しいでしょうが、それでも可能です。これを行うには、実際にすべてをいくつかのラベルに分割し、それらをグリッドに配置する必要があります(MigLayoutはこのようなものに非常に適していると思います)。
6つのJLabelを作成し、必要に応じて左、右、または中央に揃えてから、次のようにグリッドにドロップします。
| Hoffenheim 1 | : | 0 Koeln |
| Bayern 2 | : | 1 HSV |
明らかに、境界線などを無効にして、適切にフォーマットされたテキスト以外のものとしてユーザーに表示されないようにすることができます。
dimo414の回答から拡張して、実際にHTMLテーブルを使用できます
StringBuilder sb = new StringBuilder(128);
sb.append("<html>");
sb.append("<table border='0'>");
sb.append("<tr>");
sb.append("<td align='right'>Hoffenheim</td>");
sb.append("<td align='center'>1</td>");
sb.append("<td align='center'>:</td>");
sb.append("<td align='center'>0</td>");
sb.append("<td align='left'>Koeln</td>");
sb.append("</tr>");
sb.append("<tr>");
sb.append("<td align='right'>Bayern</td>");
sb.append("<td align='center'>2</td>");
sb.append("<td align='center'>:</td>");
sb.append("<td align='center'>1</td>");
sb.append("<td align='left'>HSV</td>");
sb.append("</tr>");
sb.append("</table>");
sb.append("</html>");
label.setText(sb.toString());
これははるかに複雑ですが、フォーマットの柔軟性が高くなります。