0
私は9列のJTableを持っていますが、レンダラーごとに約8行のコードを犠牲にして、各列のカスタムセルレンダラーを作成できます。Java JTable:任意のデフォルトセルアラインメントテクニックですか?
本当に必要なのは、すべてのセルに配置されたテキストを右寄せとして表示することだけです。テーブル全体に対してこの配置を設定する方法はありますか?
ご意見ありがとうございます。
ジョンDoner
私は9列のJTableを持っていますが、レンダラーごとに約8行のコードを犠牲にして、各列のカスタムセルレンダラーを作成できます。Java JTable:任意のデフォルトセルアラインメントテクニックですか?
本当に必要なのは、すべてのセルに配置されたテキストを右寄せとして表示することだけです。テーブル全体に対してこの配置を設定する方法はありますか?
ご意見ありがとうございます。
ジョンDoner
はこれを試してみてください:
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)
を使用しています。
あなたが探しているものが欲しいです!
私はこの権利(主にマイナーな問題)を得るために2回の編集を実行しなければならなかったので、疲れているはずですので、うまくいけば何か他のものをねじにしませんでした:) –
私はこれを試みました。しかし、ここでは謎です:doループを削除し、単一のセルレンダラーの水平方向の配置を右に設定すると、テーブル内のすべてのセルが同じ位置に配置されます。何故ですか? –
'JTable'の作成方法によっては、単一の' DefaultTableCellRenderer'をすべてのセルに使用できます。したがって、独自のレンダラを定義していない場合は、そのレンダラを取り除くことができます。 –