[Java lista] jtable sorok törlése

Andras Dobrosi andris at freemail.hu
2007. Már. 9., P, 13:50:06 CET


** Szia!

Erdemes bizonyos dolgokat a for cikluson kivulre helyezni, mert a logika is
megkivanja, meg erroforras szempontbol sem mindegy mi van egy ciklus
belsejeben.

A furcs viselkedes annak lehet koszonheto, hogy amikor kitorolsz egy sort,
akkor a kijelolt sorok helyzete ertelem szeruen megvaltozik. Erre egy jo
megoldas lehet a deleted valtozo.

tied:
for(*int* i = 0;i<selectedRows.length;i++) {
*    *TableModel tm = table.getModel();
*    if* (tm *instanceof* DefaultTableModel) {
*        *DefaultTableModel dtm = (DefaultTableModel)tm;
*        int* toDelete = selectedRows[i];
*        *System.*out*.println(toDelete);
*        *dtm.removeRow(toDelete);
*    *}
}

enyem:
 TableModel tm = table.getModel();
 *if* (tm *instanceof* DefaultTableModel) {
*    DefaultTableModel dtm = (DefaultTableModel)tm;*
*    int* deleted = 0;
*    *for(*int* i = 0;i<selectedRows.length;i++) {
*        int* toDelete = selectedRows[i] - deleted;
*        *System.*out*.println(toDelete);
*        *dtm.removeRow(toDelete);
        deleted++;
*    *}
}

Andris

On 3/9/07, Maglódszki Viktor <bocios at citromail.hu> wrote:
>
>  Sziasztok !
>
> Szeretném törölni a kiválasztott sorokat.
> Ezt a következőképpen próbálom.
>
> Kiválasztom a sorokat, majd jobb klikk és törlés (a popup része működik)..
>
> kattintáskor (popup menüre) a következő kód fut le:
>
> //miket jelolt ki
>
> *int*[] selectedRows = table.getSelectedRows();
>
> *int* elso = selectedRows[0];
>
> *int* utolso = selectedRows[selectedRows.length-1];
>
>
>
> //ciklus a sorok torlesere
> *
>
> for
> *(*int* i = 0;i<selectedRows.length;i++) {
>
> TableModel tm =
> table.getModel();
>
> *if* (tm *instanceof* DefaultTableModel) {
>
> DefaultTableModel dtm = (DefaultTableModel)tm;
>
> *int* toDelete = selectedRows[i];
>
> System.
> *out*.println(toDelete);
>
> dtm.removeRow(toDelete);
>
> }
>
> }
>
>
>
> //eretesiteni h sorokat toroltem
>
> TableModel tm =
> table.getModel();
>
> *if* (tm *instanceof* DefaultTableModel) {
>
> DefaultTableModel dtm = (DefaultTableModel)tm;
>
> dtm.fireTableRowsDeleted(elso, utolso);
>
> }
>
> table.updateUI();
>
> table.validate();
>
>
>
> a kód lefutása után össze-vissza történik minden féle
>
> 1 sor kijelelölésénél például lejebb teszi a sort ahelyett, hogy törölné
>
> több sornál meg csak néhányat töröl, kijelölök 5öt töröl 3mat
>
> hol rontom el?
>
> köszi
>
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>
>
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20070309/65081fbe/attachment-0001.html 


További információk a(z) Javalist levelezőlistáról