Rysowanie w Applecie

Rysowanie w Applecie
Nild
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:2
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ę

Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

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


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
Nild
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:2
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?

spartanPAGE
  • Rejestracja:około 12 lat
  • Ostatnio:około 6 godzin
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ć.

Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
datdata
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 7 lat
  • Postów:957
0

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


"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." Robert Heinlein.
Olamagato
A może jakieś uzasadnienie? Bo np. nie w moim imieniu, choć też siedzę w internecie. :P
Olamagato
  • Rejestracja:ponad 16 lat
  • Ostatnio:około 2 miesiące
  • Lokalizacja:Polska, Warszawa
  • Postów:1058
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ć.


Jeżeli ktoś komuś coś, ewentualnie nikt nikomu nic, to właściwie po co...?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.