Doporucuji nepouzivat DefaultTableModel vubec. Hodi se jen na velice jednoduche pripady. Vetsina 'realinych' tabulek je sprazena s AbstractTableModel. Pokud chcete i tabulku sortovat, filtrovat - doporucuji pouzit glazedlists framework. Je zadarmo a rychle se uci - maji pekne tutorial videa.
Petr Charvat

Martin Jedlička wrote:
Bohuzel mate pravdu ;)
Ja mam model oddedeny od DefaultTableModel (ktery dela razeni), protoze jsem potreboval funkce addrow, remoterow atd. Takze ted nevim co s tim...Mam udelat novy model od AbstractTableModel ?? To se mi ale moc nechce, protoze stavajici tabulka je uz docela ve velkem rozsahu a nechce se mi to cely menit. Navic nevim, jak se vyporadat s daty (pridavani vektoru jako radku - ted jsem pouzival prave addrow). Takze nejaka rada?

Diky.
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






Odpovedet emailem