Rysowanie w Applecie

0

Witajcie. Jestem nowy na tym forum, na innych forach pomagam w C++ itp. lecz poleglem na appletach javy... Proszę was bardzo o pomoc, gdyz nawet nie wiem jak to dobrze zacząć, a więc: Muszę narysować wykorzystując figury geometryczne wraz z linią prostą i giętą Głowę misia, która będzie po kliknięciu uśmiechnięta/smutna oraz bedzie mrugac oczami i przy smutnej będą lecieć łzy. Nie musi byc żadnego tla, ani koloru gdyż to umiem. Prosiłbym chociaż o wskazówki, lub najlepiej kod, ale wiem jak to jest "My tu nie piszemy za kogos programów" :)
Z góry dziękuję

0

Ja nie bardzo rozumiem czego oczekujesz. Z czym niby masz problem?

0

Chciałbym tylko abyście nakierowali mnie jak powinienem się w ogole za to wziać..Może jest jakis program do robienia takich rzeczy?

0

Stwórz animację na podstawie zbioru kolekcji figur ułożonych w odpowiednich miejscach.
Obsłuż zdarzenie kliknięcia, podczas którego będziesz zmieniać animację.
Maszyna stanów to wzorzec, z jakim powinieneś się w tym wypadku zaznajomić.

0

Troszkę nie na temat, ale proszę w imieniu reszty Internetu, nie używaj appletów do czegokolwiek.

0

Najpierw musisz umieć stworzyć zwykły nieruchomy, całkowicie statyczny applet, którego jedynym zadaniem będzie zainicjowanie otrzymanej od przeglądarki internetowej (lub applet viewera - bez znaczenia) powierzchni graficznej do malowania. Robi się to w procedurze init, która jest wywoływana tylko raz dla każdej instancji apletu. Następnie przy pomocy paint w każdym wywołaniu metody start musisz umieć coś narysować. Dobrą praktyką jest nie umieszczenie wywołań procedur rysujących w metodzie paint, ale w metodzie, która będzie stamtąd wywoływana (taki nawyk przyda się później). Metody rysujące mimo pozornej komplikacji są banalnie proste, tyle że powodują ich wywołania dają średnioczytelny kod.
Takie postępowanie jest kiedy aplet jest zbudowany z wykorzystaniem tylko AWT.
Jeżeli do zbudowania apletu wykorzystasz klasę JApplet, to oznaczać to będzie, że wnętrze apletu będzie kawałkiem gui opartego nas Swingu co oznaczać będzie również zastosowanie się do wszystkich wymagań tego GUI, czyli zamiast paint mazać po dostępnym prostokącie będzie procedura paintComponent obiektu JApplet. Będzie też EDT, czyli event driven thread. Zaletą byłaby możliwość wpakowania dowolnych obiektów Swinga, ale dla Ciebie to niewielka lub żadna zaleta.
Po narysowaniu za pomocą procedur tego misia powinieneś obsłużyć zdarzenie AWT, którym będzie wciśnięcie buttona myszy i wtedy Twój aplet powinien zmienić swój stan na inny. Jeżeli wersje obrazka będą tylko dwa, to cala maszyna stanów sprowadzi się do jednej zmiennej boolean. Jeżeli chodzi o łzy, czyli animację, to musisz do tego zaprząc klasę java.util.Timer, która będzie (w swoim wątku) regularnie wywoływac jakąś procedurę zmieniającą stan danych dla rysowania tych łez (np. przesunięcie) i nakazującą odrysowanie apletu i następnie repaint, która właśnie wymusza wywołanie zdefiniowanej przez Ciebie paint). A w niej masz po prostu te łzy animować. Czyli zamazywać poprzednią wersję i rysować nową z przesunięciem. Na całkowite zasłonięcie zwykle odpala się metoda stopi wtedy możesz przestać rysować (ale nie musisz nic robić bo paint i tak przestanie wołana przez system), ale możesz spokojnie zatrzymać timera wymuszającego zmiany stanu i nakazywać odrysowywanie obrazka.
Tak mniej więcej ma to działać.

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