-
sunseeker
Witam, zaczynam dopiero zabawe z Java i mam maly problem jesli chodzi o programowanie zdarzeniowe. Zeby bylo jasniej to mam taki prosty programik: http://www.ee.pw.edu.pl/~kowalst1/N... ... Tworzy on Ramke, w niej przycisk i pole tekstowe. Klik na przycisk -> nowa ramka, a w niej to samo, przycisk i pole. Chce zeby po wpisaniu czegos w to pole a nastepnie kliknieciu przycisku text ustawial mi sie w pierwszej ramce w polu, choc moze byc to cokolwiek. Chodzi mi o sama operacje pobrania czegos, jakiejs zmiennej z jednej ramki do drugiej. Troche nie mam pojecia jak to zrobic mimo wertowania tutoriali i dokumentacji, nie umiem wyjsc poza klase. Probowalem to robic jakos z dziedziczeniem, ale tez nie wychodzi. Moze ktos pokazalby na tym przykladzie jak to rozwiazac... -
Koziołek [brat Javowiec]
Nie podam ci odpowiedzi ponieważ jak chcesz się uczyć to wystarczy podpowiedź :)
Najprostszym modelem służącym do tego typu komunikacji i powiadamiania jest:
Wzorzec Projektowy Obserwator
(Design Pattern Observer)
Pozdrawiam
-
sunseeker
Dzieki, bezskutecznie szukałem odpowiedzi w roznych madrych ksiazkach... -
Eric Wu
Wzorce projektowe to bardzo fajna rzecz.
Niekiedy nawet niezbędna.
Dobrze jest się z nimi zaprzyjaźnić. :) -
-
sunseeker
Znalazłem, poczytałem i niestety poległem. Jest całkiem sporo napisane o tym wzorcu, ale niestety zbyt enigmatycznie/na zbyt abstrakcyjnych przykladach jak na moją wiedzę :/. Przykład jest prosty więc może ktoś moglby pokazac przykladowe rozwiązanie tego, bo ja sie mecze juz 3 dzien i nie ruszyłem tego ani o milimetr. Potworzyłem ledwie jakies interfejsy ktore zaimplementowalem do klas, dodałem obserwatorów i utknąłem. Pomoże ktoś? -
Eric Wu
Podpowiedź:
Obserwowanym jest klasa opisująca kolejne ramki potomne. Nie trzeba dla nich tworzyć listy obserwatorów - bo obserwator jest z założenia jeden. Ale można, jeśli chce się zachować elastyczność rozwiązania.
Obserwatorem jest ramka główna.
Przy tworzeniu ramki musi być do niej przekazany wskaźnik na ramkę główną (poprzez "this" z ramki głównej lub z pola go zawierającego z ramki potomnej).
Każda taka ramka musi zachować w polu prywatnym (lub na liście) wskaźnik na obserwatora, czyli ramkę główną (w java wszystkie pola, poza typami prostymi, działają tak jak wskaźniki - to znaczy przypisując this do jakiegoś pola czy wartości jednej zmiennej do innej nie otrzymuje się nowej instancji klasy).
I potem przy zmianie tekstu taka ramka wywołuje na obserwatorze (ramce głównej) metodę uaktualnij. -
sunseeker
A może jednak ktoś pokazałby jak to zrobić bo trace na to za duzo czasu i nigdzie nie dochodze :/ -
sunseeker
Odwołuje. Rozwiazalem to w inny sposób, drugą ramkę potraktowałem po prostu jako klasę wewnetrzną pierwszej ramki i dziala jak należy. -
sunseeker
A jeszcze zapytam. Bo z tego co rozumiem to wzorzec obserwatora stosujemy wtedy kiedy wiele obiektów jest zainteresowanych zmianą innego. Czy zastosowanie obserwatora ma sens kiedy jeden obiekt nasłuchuje zmian w wielu obiektach ?
- Przeglądaj grona w kategorii Internet i Komputery
- Przeglądaj grona w okolicy Warszawa
- Załóż własne grono tematyczne
- Zostań moderatorem
Podobne Tematy
|
|
Wszystko co związane z programowaniem w Java (J2EE, JSP, JDBC, itd) test
Miejsca grona (1)
-
Kino Luna ul. Marszałkowska, Warszawa
www.kinoluna.pl kino.luna@maxfilm.com.pl 22 621 78 28
- Dodaj miejsce

