[JAVA] Opslaan van een waarde uit een jTable

Pagina: 1
Acties:

  • yrew
  • Registratie: Augustus 2001
  • Laatst online: 22:08
Ik heb op een Swing schermpje een jTable. In deze table kan ik waardes wijzigen welke uiteindelijk opgeslagen worden in een database.

Het probleem waar ik tegen aanloop is dat een cell zijn focus moet verliezen voor dat de bewerkte waarde opgeslagen wordt. Wanneer je op een button klicked verlies je niet de echte focus, maar komt hij in een soort van standby te staan. Ik had hiervoor het volgende bedacht.

1 private void stopEditing() {
2 if (jtTable.getRowCount()>0) {
3 TableColumnModel tcm = jtTable.getColumnModel();
4 for (int x=0;x<tcm.getColumnCount();x++) {
5 TableColumn cm = tcm.getColumn(x);
6 CellEditor ce = cm.getCellEditor();
7 if (ce != null) {
8 ce.stopCellEditing();
9 }
10 }
11 }
12 }

Maar dit loopt vast op regel 6. Ik krijg namelijk null terug ipv een CellEditor.

Wie kent het probleem van die "standby" en heeft hier een oplossing voor?
Wie ziet de oplossing van mijn code?

Groetjes


Verwijderd

punt 1: getCellEditor() geeft een TableCellEditor terug
punt 2: Misschien moet je niet het TableColumnModel gebruiken maar gewoon jTable.getCellEditor(row, col) waarbij row en col respectievelijk jTable.getEditingRow() en jTable.getEditingColumn() zijn.

[ Voor 1% gewijzigd door Verwijderd op 16-01-2003 12:05 . Reden: typo ]


  • yrew
  • Registratie: Augustus 2001
  • Laatst online: 22:08
zodra ik tijd hebt grmbl grmbl probeer ik het ff uit...maar iig alvast bedankt...

Groetjes


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Java:
1
2
3
4
5
6
7
8
9
10
11
12
private void stopEditing() {
    if (jtTable.getRowCount()>0) {
        TableColumnModel tcm = jtTable.getColumnModel();
        for (int x=0;x<tcm.getColumnCount();x++) {
            TableColumn cm = tcm.getColumn(x);
            CellEditor ce = cm.getCellEditor();
            if (ce != null) {
                ce.stopCellEditing();
            }
        }
    }
}


Zo, leesbaar ;)

Het zou fijn zijn als je voortaan je code tussen [code]-tags zet. Evt. kan je [code=java] gebruiken voor l33t coloring :)

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • yrew
  • Registratie: Augustus 2001
  • Laatst online: 22:08
zooooooo dat is een vette feature....die ga ik zeker gebruiken....eerst doen dan pas lezen he.

Maar het werkt niet..Het heeft volgens mij te maken doordat je een waarde wijzigt met een editor die aan een cell hangt. Je doet dit dus niet direct op de jtable zelf. Hierdoor kan de focus van de jTable wel wegvallen, maar als dit gebeurd doordat je op een button drukt, zet de editor zichzelf in de wacht en verliest hij zijn focus niet en wordt het niet opgeslagen ofzoiets....

Het moet wel lukken ooit....

Groetjes