Avatar billede clone Nybegynder
15. maj 2001 - 13:14 Der er 1 kommentar og
1 løsning

\"setValueAt\" funktion i AbstractTableModel

Jeg har en JTable og en tilhørende tabel model, som nedarver fra AbstractTableModel. Jeg overwriter funtionen setValueAt(), som er den funtion der automatisk bliver kaldt, når indholdet i en celle ændres. Funktionen er vist herunder:

public void setValueAt(Object value, int nRow, int nCol)
{
    String svalue = value.toString();
    System.out.println(\"Value: \" + svalue);
}

Problemet er bare, at parametren value, ALTID indeholder strengen \"false\", hvilket jeg undrer mig meget over!
Det skal hertil siges, at jeg bruger en cunstom cell editor, som nedarver fra DefaultCellEditor, vist herunder:

public class MyCellEditor extends DefaultCellEditor
{
    MyCellEditor()
    {
        // Unfortunately, the constructor expects a check box, combo box, or text field:
        super(new JCheckBox());
    }

    protected void fireEditingStopped() {
        super.fireEditingStopped();
    }

    // In this function we return the editor component we want to use:
    public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int nRow, int nCol)
    {
        return new MyTextField();
    }
}

Jeg kan godt regne ud, at strengen \"false\" på en eller anden måde stammer fra JCheckBox\'en i editorens constructor, men jeg ville da mene, at det skulle være den tekststreng som mit MyTextField objekt genererer, som burde blive returneret til AbstractTableModel, eller hvá?
Avatar billede clone Nybegynder
15. maj 2001 - 13:59 #1
Lige meget. Jeg fandt selv ud af det.
Problemet ligger i MyCellEditor, som skal have tilføjet funktionen:

public Object getEditorValue()

hvori det ønskede objekt returneres.
Så simpelt var det.
Avatar billede clone Nybegynder
15. maj 2001 - 14:02 #2
øhhh... jeg mener:

public Object getCellEditorValue()
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester