24. april 2001 - 13:32
Der er
2 kommentarer og
1 løsning
få JTable til at virke som fx excel
jeg har et JTable og når man bruger tab til at komme hen til cellen er det markeret, men når man begynder at skrive kommer det til at stå efter det der var der i forvejen.
den funktionalitet jeg vil have er : når en celle er markeret skal den gamle tekst overskrives, når man begynder at skrive.
ligesom et felt i fx. excel.
såvidt jeg kan se skal man lave sin egen celleditor, men hvordan laver man en celleditor der kan det.
29. april 2001 - 21:51
#1
Du kan komme over det ved at lave et lille hack til din cell editor, a.la.
class MyEditor extends DefaultCellEditor {
MyEditor() {
super(new JTextField());
}
public Component getTableCellEditorComponent(JTable table,
Object value, boolean isSelected, int row, int col) {
Component c = super.getTableCellEditorComponent(table,
value, isSelected, row, col);
((JTextField) c).setText(\"\");
return c;
}
}
Brug evt. den til den class, som du anvender i din JTable, i stil med:
JTable t = new JTable(new Model());
t.setDefaultEditor(Integer.class, new MyEditor());
30. oktober 2001 - 14:39
#3
For at undgå at indholdet forsvinder, hvis man nu går ind i det kan man bruge:
((JTextField) c).selectAll();
istedet for
((JTextField) c).setText(\"\");
Nu overskrives indholdet hvis du blot taster i cellen, men hvis du klikker dig ind i den, forbliver indholdet.