G
Guest
Gast
hallo,
ich habe eine JTable in einem Panel. Der Tabelle habe ich einen eigenen CellRenderer zugewiesen.
Das Problem ist nun, dass die Felder der Tabelle nicht korrekt inaktiviert werden. Dies geschieht erst, wenn man auf das jeweilige Feld ein zweites Mal drückt.
ich habe eine JTable in einem Panel. Der Tabelle habe ich einen eigenen CellRenderer zugewiesen.
Code:
//set new CellRenderer
for (int i = 1; i < columnsTable1.length; i++) {
if (i!=5) {
table1.getColumn(columnsTable1[i]).setCellRenderer(new FixedTableCellRenderer());
}
}
private class FixedTableCellRenderer extends DefaultTableCellRenderer
{
private static final long serialVersionUID = 3428897314351960235L;
public Component getTableCellRendererComponent
(JTable table, Object value, boolean selected, boolean focused, int row, int column)
{
super.getTableCellRendererComponent(table, value, selected, focused, row, column);
//nonstarting classifiers and Workload Class in classify mode disabled
setEnabled(!((String.valueOf(table.getValueAt(row, 0)).equals("false"))||
(String.valueOf(table.getValueAt(row, 3)).equals("classify")&& column==8)||
(String.valueOf(table.getValueAt(row, 3)).equals("learn")&& column==5)));
return this;
}
public boolean isCellEditable(int row, int column) {
return tableModel1.isCellEditable(row, table1.convertColumnIndexToModel(column));
}
Das Problem ist nun, dass die Felder der Tabelle nicht korrekt inaktiviert werden. Dies geschieht erst, wenn man auf das jeweilige Feld ein zweites Mal drückt.