このコードが正しく実行できないのはなぜですか? そして、この JTable のすべてのアイテムは RED COLOR を持っていますか? クラスMonCellRendererを1回だけ呼び出しますが、何度もループします。私は何をすべきか?
私は jtable を呼び出すためのクラスを持っています:
public void Tampil(){
DataTabel.setNumRows(0);
try {
String thn ;
String bln ;
String btc ;
DataTabel.setNumRows(0);
QueryManajemen q = new QueryManajemen();
String[] kolom = new String[DataTabel.getColumnCount()];
for (int a = 0; a < DataTabel.getColumnCount(); a++) {
kolom[a] = DataTabel.getColumnName(a);
}
String[][] data = //some code;
String[][] notClean = //some code;
for (int j = 0; j < notClean.length; j++) {
listSearch.add(notClean[j][0].toString());
}
**tblBatch.setDefaultRenderer(Object.class, new MonCellRenderer());**
} catch (SQLException ex) {
}
}
}
次にクラスを呼び出します:
private List<String> listSearch = new ArrayList<String>();
public List<String> getListSearch() {
return listSearch;
}
public class MonCellRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value,boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table, value,isSelected, hasFocus, row, column);
if (column == 0 || listSearch.contains(value)) {
setBackground(Color.RED);
} else {
setBackground(Color.WHITE);
}
return this;
}
}