[Events] Czy jest jakiś uniwersalny listener

0

Czy istnieje jakiś listener, którego by obsługiwały wszystkie komponenty Swinga? Listener ten musiałby informować o zmianie wartości komponentu, np:

  • dla JTextField o zmianie wprowadzongo tekstu
  • dla JCheckBox o zaznaczeniu/odznaczeniu
  • dla JComboBox o wybraniu/wprowadzeniu jakiejś wartości.

Poszukuje jednego unierwsalnego listenera. Da się to w jakiś sposób osiągnąć? Próbowałem z PropertyChange, a także z InputMethod, ale nie wychodziło.

0

spróbuj "implements" kilka interfejsów. Powinno zadziałać. Tylko po co to? Jedengo listenera nie ma bo i po co? <ort>rzadko </ort>powstaje klasa która by miała kilkadziesiąt metod do obsługi wszystkich zdarzeń, z czego większość nie jest potrzebna.

0

To co napisałem odpada. Jeden listener nie jest wytworem mojej chorej wyobraźni ;P Jest mi potrzebny do mojego frameworka, który automatycznie tworzy GUI na podstawie adnotacji.

0

To, co napisałeś, odpada. Jeden listener nie jest wytworem mojej chorej wyobraźni Jest mi potrzebny do mojego frameworka, który automatycznie tworzy GUI na podstawie adnotacji umieszczonych w klasie modelu. Jakieś pomysły na tego listenera?

0

Nie wiem jaki projekt zrobiłeś, ale największą zaleta Swinga jest właśnie brak ogólnego listenera i rozdrabnianie obsługi zdarzeń na jak najmniejsze spójne fragmenty. Taki odmienny bajzlowaty sposób obsługi zdarzeń występuje właśnie w Windows (pisząc w C) i było to przyczyną wielu problemów z tym systemem. Java tego nie ma - i całe szczęście. Gdyby był taki uniwersalny listener, to powstałoby mnóstwo programów w których ludzie robią jeden event handler, na 500 wierszy składający się z jednej kobylastej instrukcji switch. Nie trzeba chyba dodawać jakim ogromnym generatorem błędów była taka procedura. To ślepy zaułek z którego Java się wydostała.

Musisz pomyśleć nad swoim projektem bo najwyraźniej oparłeś się na założeniu, które nie jest przez Javę spełniane i na pewno nie będzie w przyszłości.

0

Do tworzenia GUI w Swingu w sposób deklaratywny można użyć Javy FX.

Co do pomysłu jednego listenera - odradzam.

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