0

私の前の質問、Coloring jTable rowへの回答では、新しい質問がここに行くかどうかはわかりませんが、色を行に設定することは機能しています。しかし、私は for ループからそれを与えたいと思っています。つまり、i 番目の行の色を設定したいということです。使用したものをお譲りします。

for(int i=0;i<serialNumber;i++){
  if((jTable1.getValueAt(i,1).toString()).equals(BidNumber)){
   Enumeration<TableColumn> en = jTable1.getColumnModel().getColumns();
    while (en.hasMoreElements()) {
        TableColumn tc = en.nextElement();

        tc.setCellRenderer(new MyTableCellRenderer());
    }
}

メソッド cellrenderer を呼び出します。

public class MyTableCellRenderer extends DefaultTableCellRenderer implements TableCellRenderer {

        @Override
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            setBackground(null);
            super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

              boolean interestingRow = row ==1;



            if (interestingRow) {
                setBackground(Color.YELLOW);
            }

            return this;
        }

    }

ここでは、最初の列の値が BidNumber と等しいときに行に色を付けようとしていますが、セルレンダラー (ここ) では、row==1 として設定され、条件が true になるたびに 1 番目の行が色付けされます..どうすればi番目の行に設定できますか?

4

1 に答える 1

2

boolean interestingRow = row ==1要件を満たすように変更するとrow == n、目的の結果が得られます。n意味のある方法で定義する必要があります

これは、テーブル データ モデルから取得するか、他の手段で提供することができます

于 2012-07-19T10:15:00.727 に答える