2011-01-08 12 views
0

私は9列のJTableを持っていますが、レンダラーごとに約8行のコードを犠牲にして、各列のカスタムセルレンダラーを作成できます。Java JTable:任意のデフォルトセルアラインメントテクニックですか?

本当に必要なのは、すべてのセルに配置されたテキストを右寄せとして表示することだけです。テーブル全体に対してこの配置を設定する方法はありますか?

ご意見ありがとうございます。

ジョンDoner

答えて

5

はこれを試してみてください:

for (int i = 0; i < myTable.getModel().getRowCount(); i++) { 
    for (int j = 0; j < myTable.getModel().getColumnCount(); j++) { 
     DefaultTableCellRenderer renderer = 
     (DefaultTableCellRenderer)myTable.getCellRenderer(i, j); 
     renderer.setHorizontalAlignment(JTextField.RIGHT); 
    } // End for(j) 
} // End for(i) 

各セルはすでにレンダラを持っているので、これはTableModelから、各セルの既存のTableCellRendererをつかみ、JLabelから継承されたビルトイン方式setHorizontalAlignment(int)を使用しています。

あなたが探しているものが欲しいです!

+0

私はこの権利(主にマイナーな問題)を得るために2回の編集を実行しなければならなかったので、疲れているはずですので、うまくいけば何か他のものをねじにしませんでした:) –

+0

私はこれを試みました。しかし、ここでは謎です:doループを削除し、単一のセルレンダラーの水平方向の配置を右に設定すると、テーブル内のすべてのセルが同じ位置に配置されます。何故ですか? –

+0

'JTable'の作成方法によっては、単一の' DefaultTableCellRenderer'をすべてのセルに使用できます。したがって、独自のレンダラを定義していない場合は、そのレンダラを取り除くことができます。 –

関連する問題