0

JTableの助けを借りて を作成しましたAbstractTableModelJTable2 番目の列と同じエントリを持つ 3 番目の列にマーク (セルの色を変更) したいと思います。例えば:

ここに画像の説明を入力

したがって、この投稿の助けを借りて続行する前にjtableの重複データを確認してください

私はこれに来ました:

      table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer()
      {
         @Override
         public Component getTableCellRendererComponent(JTable table,
               Object value, boolean isSelected, boolean hasFocus, int row,
               int column) {
            Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus,
                  row, column);

            TreeSet<Object> set = new TreeSet<Object>();

            for (int i=0; i<model.getRowCount();i++){
                Object obj = model.getValueAt(i,1); //(row, column)
                if(!set.add(obj))
                {
                    c.setBackground(new java.awt.Color(255, 72, 72));
                }
                else{
                    c.setBackground(null);
                }
            }

            return c;
        }
      });

しかし、各行を正しくチェックしているように見えますが (私が行った印刷のために)、何も色付けされていません。JTable私が作成した はJTable常に変化する、つまり と の 2 つのボタンがあることを追加したいと思いPREVIOUSます。NEXTこのテーブルは常に各フォームを変更し、列の数も変更します。

さらに何かリクエストがあれば、投稿を編集します。

ありがとうございました。

4

1 に答える 1

2

forレンダラーのを

if (column==2) {
    Object obj = model.getValueAt(row,column-1); //(row, column)
    if(value.equals(obj)) {
       c.setBackground(new java.awt.Color(255, 72, 72)); //red
    }
    else{
       c.setBackground(null);
    }
}
于 2013-03-07T10:18:41.150 に答える