web-dev-qa-db-ja.com

JTable列の右揃えを設定

請求施設のアプリケーションを作成しています。金額列を右揃えで表示します。 JTable列に正しい配置を設定するにはどうすればよいですか?

19
Arivu2020
DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
rightRenderer.setHorizontalAlignment(JLabel.RIGHT);
table.getColumnModel().getColumn(4).setCellRenderer(rightRenderer);
31
sathya

これを試して:

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;
    }
};
8
Emil

概念:エディタとレンダラ を参照してください。「Number —右揃えのラベルによってレンダリングされます。」 TableModelに正しいクラスを返させるだけです。具体的な例として、IntegerNumberであることに注意してください。この examplegetColumnClass()の実装を調べています。この関連する の例 では、0番目のcolIndexObject.classを返します。これは、「オブジェクトの文字列値を表示するラベルによってレンダリングされます」。デフォルトでは、ラベルは左揃えです。

switch (colIndex) {
    case 0: return Object.class;
    …
}

left-aligned

対照的に、Integer.classは「右揃えのラベルでレンダリングされます」。

switch (colIndex) {
    case 0: return Integer.class;
    …
}

right-aligned

これらは、 ランタイムタイプトークンとしてのクラスリテラル の使用例であり、 ここで説明されていますJTable

5
trashgod

テーブルセルのDefaultTableCellRendererを取得し、setHorizo​​ntalAlignment(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

2
YoK