JTable wykrycie modyfikacji

0

Cześć Ostatnio na NetBeansa się z ecpilse przesiadłem.
I chce obecnie podczepić pod jtable słuchacza do wykrywania zmian komórek ale titaj nie można nic dopisać z palca albo nie wiem gdzie. I moje pytanie w jaki sposób mogę podczepić słuchaczy? Do buttonów wiem jak ale do tabel słabo. Chce podczepić zwykłe " public void tableChanged(TableModelEvent e)" ale jak wpisze z palca sobie tak po prostu to oczywiście nie jest to tabeli dodane jakoś i klops

0

To działa w druga stronę, jak zmienisz coś w modelu, to wywołaj odpowiednią metodę model.fire..., na przykład model.fireTableDataChanged();

0

Sama tabela (JTable) odpowiada jedynie za WYŚWIETLANIE i organizację w GUI danych które siedzą w MODELU. Wszelakie zewnętrzne zmiany danych (np masz w tabeli obiekty JLabel i zmieniłeś im z zewnątrz text) praktycznie NIE ISTNIEJĄ dla obiektu JTable (jakby się nie wydarzyły). Żeby było zabawniej, nawet tej zmiany nie zauważysz w GUI! Będzie to dopiero widoczne kiedy (tak jak @bo przytoczył) odpalisz jakiś event metodą fire* modelu tabeli.

JTable tylko wyświetla, nie zarządza danymi.
Generalnie, aby to wykonać (nie podałeś jakie dane trzymasz w tabeli itd itp -> buttony? JTextFieldy?? Integery? CheckBoxy??, ani też w jaki sposób wartości miałyby być modyfikowane w inny sposób niż na modelu - bo wtedy potrzebujesz listenerów właśnie) należy przed wstawieniem obiektu do tabeli, jemu samemu dodać odpowiedniego listenera. Niestety nie znam na to innego złotego środka:)

A no jest też jeszcze taka opcja, że można stworzyć zawsze jeden obiekt listenera i podpiąć go pod wszystkie pola (obiekty siedzące w tabeli) :) Przy wywołaniu możesz sobie wtedy sprawdzić co uległo zmianie itd itp. Diabeł tak naprawdę tkwi w szczegółach, a praca z JTable jest dość zawiła.

1 użytkowników online, w tym zalogowanych: 0, gości: 1