Hallo Leute!
Ich habe ein JTable in welchen ich in der 1. Spalte eine JCheckbox (mit custon cellrenderer und editor) habe, nun möchte ich mit deselektieren eben dieser Checkbox die Zeile "deaktivieren" - damit meine ich sowohl editable auf false setzen als auch die Hintergrundfarbe mit einem CellRenderer auf grau zu ändern!
Wie ihr euch schon denken könnt funktioniert das nicht so ganz wie ich möchte!
Mein Problem ist das wenn ich nun das die Checkbox zwar angezeigt wird aber sich die Farbe der anderen Zellen nicht ändert.
CheckBoxCellEditor schaut wie folgt aus:
Meine erste Lösungsidee wäre ja gewesen:
Einen ChangedStateListener an die CheckBox zu hängen welche bei click eben bei click den Renderer 2. Renderer iwie bzw den Table updatet nur das hab ich mit "updateUI" eben nicht hinbekommen.
Ich bin für jegliche art von hilfe / links (google schon seit etlichen stunden an dem ding herum)
sehr sehr dankbar!!
Ich habe ein JTable in welchen ich in der 1. Spalte eine JCheckbox (mit custon cellrenderer und editor) habe, nun möchte ich mit deselektieren eben dieser Checkbox die Zeile "deaktivieren" - damit meine ich sowohl editable auf false setzen als auch die Hintergrundfarbe mit einem CellRenderer auf grau zu ändern!
Wie ihr euch schon denken könnt funktioniert das nicht so ganz wie ich möchte!
Mein Problem ist das wenn ich nun das die Checkbox zwar angezeigt wird aber sich die Farbe der anderen Zellen nicht ändert.
Java:
class CustomTableCellRenderer extends DefaultTableCellRenderer
{
@Override
public Component getTableCellRendererComponent
(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column)
{
Component cell = super.getTableCellRendererComponent
(table, value, isSelected, hasFocus, row, column);
try
{
if(CheckBoxCellEditor.isDisabled())
{
cell.setBackground(Color.gray);
}
else
{
cell.setBackground(Color.white);
}
} catch (Exception e) {
e.printStackTrace();
}
return cell;
}
}
CheckBoxCellEditor schaut wie folgt aus:
Java:
class CheckBoxCellEditor extends AbstractCellEditor implements TableCellEditor
{
static JCheckBox checkBox;
public static boolean isDisabled()
{
if(checkBox.isEnabled())
return false;
return true;
}
public CheckBoxCellEditor()
{
checkBox = new JCheckBox();
checkBox.setHorizontalAlignment(SwingConstants.CENTER);
checkBox.setBackground(Color.white);
}
public Component getTableCellEditorComponent(
JTable table,
Object value,
boolean isSelected,
int row,
int column)
{
checkBox.setSelected(((Boolean) value).booleanValue());
return checkBox;
}
public Object getCellEditorValue()
{
return Boolean.valueOf(checkBox.isSelected());
}
}
Meine erste Lösungsidee wäre ja gewesen:
Einen ChangedStateListener an die CheckBox zu hängen welche bei click eben bei click den Renderer 2. Renderer iwie bzw den Table updatet nur das hab ich mit "updateUI" eben nicht hinbekommen.
Ich bin für jegliche art von hilfe / links (google schon seit etlichen stunden an dem ding herum)
sehr sehr dankbar!!
Zuletzt bearbeitet: