Nebojte se ten vas model podedit z AbstractTableModel. A kdyz rikam
Abstract, nemyslim tim Default. Ten AbstractTM vam prave naimplementuje
podporu listeneru, zbytek metod modelu si nechte jak je mate.

Martin Jedlička píše v Út 20. 02. 2007 v 08:46 +0100:
> Ted jsem udelal takovy pokus. Pridal jsem toto:
>         m_table.getModel().addTableModelListener(new TableModelListener() {
>             public void tableChanged(TableModelEvent e) {
>                 if(e.getType() == TableModelEvent.UPDATE){
>                     m_dm.fireTableChanged(e);
>                 }
>             }
>         } );
> 
> pricemz : m_dm je ten model oddedeny od DefaultTableModel.
>                m_table je ta tabulka JTable
> 
> kdyz to ale spustim a udelam nejakou zmenu v tabulce, tak mi to vyhodi 
> vyjimku:
> Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError 
> prave na tom radku m_dm.fireTableChanged(e);
> 
> jde to vubec takto udelat? nebo co delam spatne?
> 
> Martin
> 
> 
> 
> Tomas Zverina napsal(a):
> > Ikonka se zmeni, pokud model tabulky vyvola udalost, ze se zmenil.
> > Samotne nacpani do vecotru stacit nebude, musite krome nacpani
> > informovat vsechny listenery toho modelu, ze jste neco zmenil.
> >
> > Pokud jste dedil AbstractTableModel, poohlednete se v nem po fire*
> > metodach, jak uz psala Lucka.
> >
> > Pokud jste ho nededil, pak jste nejspis osidil metody
> > addTableModelListener a removeTableModelListener a ted toho litujete :-)
> >
> > Martin Jedlička píše v Po 19. 02. 2007 v 16:59 +0100:
> >   
> >> Nekam ne to navedlo, ale bohuzel nevim, zda spravnym smerem.
> >> Model tabulky mam vlastni (razeni) oddedeny od DefaultTableModel.
> >> Kazdy radek vkladam jako vektor (resp. mam vlastni tridu oddedenou od 
> >> Vektoru). Potom mam pole techto vektoru reprezentujici ty radky.
> >> Kdyz zmenim neco v jednom vektoru (napr. prvni element je cesta k 
> >> ikonce), tak potrebuju, aby se mi ta ikonka taky zmenila v tabulce...
> >>
> >> M.
> >>
> >>
> >> Lucie Rut Bittnerova napsal(a):
> >>     
> >>> On Mon, 19 Feb 2007, Martin Jedlička wrote:
> >>>
> >>>   
> >>>       
> >>>> Zdravim,
> >>>>   potreboval bych v tabulce mit na kazdem radku ikonku, ktera by se dala 
> >>>> menit po kliknuti napr. nejakeho tlacitka. Myslel jsem, ze to vyresim 
> >>>> tak, ze pouziju vlastni CellRenderer oddedeny od JButton (rozhranni 
> >>>> TableCellRenderer) a pak CellEditor oddedeny od DefaultCellEditor. 
> >>>> Bohuzel ted nevim, jak vyresit to, aby se mi zmenila ikonka na danem 
> >>>> radku, aniz bych na ten radek kliknul....(pri kliknuti je to jednoduchy 
> >>>> pomoci getTableCellEditorComponent). Proste bych to potreboval udelat 
> >>>> tak,abych zadal pouze cislo radku (napr. nekde v jinem okne) a po 
> >>>> kliknuti nejakeho tlacitka se na na danem radku zmenila ikonka.
> >>>>
> >>>> Nevite, jak na to? Dekuju za kazdou radu.
> >>>>
> >>>> Martin
> >>>>     
> >>>>         
> >>> Dobry den!
> >>>
> >>> Nevim, jestli chapu presne co chcete, ale snad Vam pomuze 
> >>> toto.
> >>>
> >>> Ikona by mela zaviset tedy asi na nejakych datech v 
> >>> TableModel, ktera aktualizujete pri vyvolani akce, po ktere 
> >>> ma nasledovat zmena vybrane ikony v tabulce (napr. po tom kliknuti 
> >>> uzivatelem na nejake tlacitko). Model tabulky muze napriklad 
> >>> ikonu predavat primo jako obsah nektereho sloupce tabulky, 
> >>> coz je nejjednodussi varianta.
> >>>
> >>> Po aktualizaci se pak v modelu tabulky zavola metoda
> >>> fireTableCellUpdated(...) nebo nektera z obdobnych metod, 
> >>> ktere informuji posluchace udalosti (mezi nimiz je JTable) o 
> >>> zmene modelu tabulky.
> >>>
> >>> Lucie
> >>>
> >>>
> >>>
> >>>
> >>>   
> >>>       
-- 
S pozdravem,

               Tomas Zverina

Multimedia atelier s.r.o.
Na Dolinách 4
147 00 Praha 4
IČO: 25127071
tel.: 241 433 120
e-mail: [EMAIL PROTECTED]
http://www.m-atelier.cz/

Společnost Multimedia atelier s.r.o. je zapsána u rejstříkového soudu v
Praze, oddíl C, vložka 51961.

Odpovedet emailem