On Tue, 20 Feb 2007, [UTF-8] Martin JedliÄka wrote:
> 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?
Vy jste pridal posluchace udalosti, ktery pri zmene tabulky
rozesle udalost, ze se zmenila tabulka, cimz se vlastne
rekurzivne zavola, a tedy jste vytvoril nekonecny cyklus,
ktery logicky vede k preteceni pameti.
Metodu m_dm.fireTableChanged(...) mate zavolat v okamziku,
kdy nastane zmena modelu, ale nikoli uvnitr posluchace
udalosti.
Lucie