請求施設のアプリケーションを作成しています。金額列を右揃えで表示します。 JTable列に正しい配置を設定するにはどうすればよいですか?
DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
rightRenderer.setHorizontalAlignment(JLabel.RIGHT);
table.getColumnModel().getColumn(4).setCellRenderer(rightRenderer);
これを試して:
JTable tbl = new JTable(3,3) {
DefaultTableCellRenderer renderRight = new DefaultTableCellRenderer();
{ // initializer block
renderRight.setHorizontalAlignment(SwingConstants.RIGHT);
}
@Override
public TableCellRenderer getCellRenderer (int arg0, int arg1) {
return renderRight;
}
};
概念:エディタとレンダラ を参照してください。「Number
—右揃えのラベルによってレンダリングされます。」 TableModel
に正しいクラスを返させるだけです。具体的な例として、Integer
はNumber
であることに注意してください。この example でgetColumnClass()
の実装を調べています。この関連する の例 では、0番目のcolIndex
はObject.class
を返します。これは、「オブジェクトの文字列値を表示するラベルによってレンダリングされます」。デフォルトでは、ラベルは左揃えです。
switch (colIndex) {
case 0: return Object.class;
…
}
対照的に、Integer.class
は「右揃えのラベルでレンダリングされます」。
switch (colIndex) {
case 0: return Integer.class;
…
}
これらは、 ランタイムタイプトークンとしてのクラスリテラル の使用例であり、 ここで説明されていますJTable
。
テーブルセルのDefaultTableCellRendererを取得し、setHorizontalAlignment(alignment)を呼び出す必要があります。
例はリンクにあります:
http://www.techrepublic.com/article/how-to-justify-data-in-a-jtable-cell/5032692/
http://www.coderanch.com/t/337549/GUI/Java/align-data-columns-JTable