[Java lista] jtable sorok törlése

Botond Szakacs botond.szakacs at gmail.com
2007. Már. 9., P, 15:00:42 CET


Hali,

Nem akarok kötözködni de ha ugyis növekvő sorrendben vannak az
indexek, miért nem fordítod meg a ciklust uj változó bevezetése
helyett?

-- 
Üdv, Botond.

On 3/9/07, Andras Dobrosi <andris at freemail.hu> wrote:
> 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
> >
> >
>
>
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>
>


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