shutdown
Erfahrenes Mitglied
Hi!
Ich hab für eine Tabelle eine Spalte eingeführt, über die, wenn man den Button anklickt ein Detailfenster aufgeht.
Dazu habe ich sowohl im Cellrenderer als auch im Editor den selben Button verwendet.
Jetzt habe ich folgendes Problem.
Wenn ich die Buttons nacheinander anklicke, dann verschwindet der, den ich gerade anklicke und die Aktion wird auch nicht gerufen. Klicke ich dann nochmal, dann erscheint der Button wieder und die Aktion wird ausgeführt.
Klicke ich dann weiter rum und komme wieder auf einen bereits ausgeführten Button, dann wird dieser sofort aktiv, allerdings bleibt die Zelle dann trotzdem weiß.
Der Renderer/Editor ist als Singleton implementiert - daran dürfte es aber eigentlich nicht liegen.
Ich habe das ganze mal als Bild mit rangehängt.
Kennt jemand dieses Problem und weiß jemand ne Lösung?
Danke shutdown
Ich hab für eine Tabelle eine Spalte eingeführt, über die, wenn man den Button anklickt ein Detailfenster aufgeht.
Dazu habe ich sowohl im Cellrenderer als auch im Editor den selben Button verwendet.
Jetzt habe ich folgendes Problem.
Wenn ich die Buttons nacheinander anklicke, dann verschwindet der, den ich gerade anklicke und die Aktion wird auch nicht gerufen. Klicke ich dann nochmal, dann erscheint der Button wieder und die Aktion wird ausgeführt.
Klicke ich dann weiter rum und komme wieder auf einen bereits ausgeführten Button, dann wird dieser sofort aktiv, allerdings bleibt die Zelle dann trotzdem weiß.
Der Renderer/Editor ist als Singleton implementiert - daran dürfte es aber eigentlich nicht liegen.
Ich habe das ganze mal als Bild mit rangehängt.
Kennt jemand dieses Problem und weiß jemand ne Lösung?
Danke shutdown
Code:
public class GoToDetailWindowCellEditorRenderer extends AbstractCellEditor implements TableCellEditor, TableCellRenderer, ActionListener {
private static GoToDetailWindowCellEditorRenderer editorRenderer = new GoToDetailWindowCellEditorRenderer();
private JButton button;
private GoToDetailWindowCellEditorRenderer() {
//super();
button = new JButton("Detail");
button.addActionListener(this);
}
public static GoToDetailWindowCellEditorRenderer getGoToDetailWindowCellEditorRenderer() {
return editorRenderer;
}
@Override
public Object getCellEditorValue() {
// TODO Auto-generated method stub
return button;
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(e.getActionCommand());
DetailedEditorWindow.getDetailedEditorWindow();
}
@Override
public Component getTableCellEditorComponent(JTable table,
Object value, boolean isSelected, int row, int column) {
button.setActionCommand(row + "");
return button;
}
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
return button;
}
}