取り除けない問題があります。
ご存知のとおり、私はJTablesの使用にかなり慣れていないので、答えは簡単かもしれませんが、解決策を見つけることができません:/
したがって、AbstractTableModelを使用するJTableがあります。これは、
public Class<?> getColumnClass(int columnIndex_p)
メソッド、表示する各列のタイプを指定します。それらの1つはブール値です。
単純なJTableを作成する場合、
table_l = new JTable(new MyTableModel());
すべてが正常であり、ブール値はチェックボックス(オン/オフ)を使用して正しく表示されます。
ここで、テキストを各セルの中央に配置したいと思います(そして、おそらく後でさらに多くのオプションを使用します)。
したがって、次のように、列ごとに新しいDefaultTableCellRendererを定義します。
DefaultTableCellRenderer cellRenderer_l = new DefaultTableCellRenderer() {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
// delegate the rendering part to the default renderer (am i right ???)
Component comp = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
return comp;
}
}
次に、このCellRenderの水平方向の配置を次のように設定します。
cellRenderer_l.setHorizontalAlignment(JLabel.CENTER);
次に、この新しいCellRendererをJTableの各列にインストールします。
for (int i = 0; i < table_l.getColumnCount(); ++i) {
table_l.getColumnModel().getColumn(i).setCellRenderer(cellRenderer_l);
}
ただし、新しいCellRendererでは、表示されるJTableはTableModelのgetColumnClass()メソッドを使用しなくなったため、ブール値に「true/false」文字列を表示するだけです。
以前のようにgetColumnClass()を使用する方法がわかりません。
誰かが答えを持っているなら...ありがとう
編集:あなたが行ったすべての説明に感謝します。実際、私の本当の質問は、「JTableのすべてのDefaultRendererに影響を与えて、結果をJTableのセルの中央に配置する方法」でした。