Java lisaülesanded 1

Ülesanded 1


1. Pakette .awt ja .applet kasutades joonista maja, millel on uks, 2 akent.
(Vaata peatükki "Joonistamine" J. Kippari loengumaterjalides)

2. Täienda koodi nii, et majal oleks 3 korrust, igal korrusel 2 akent, esimesel korrusel ka uks
3. Täienda koodi nii, et tekstikasti saab kirjutada arvu, mitu korrust majale ehitada. Nii palju korruseid ehitatakse. Vaata peatükki "Kasutaja andmetele reageerimine" J.Kippari loengumaterjalides.



Selgitused 



  • Applet - Java klass, mis loodud töötama mitte iseseisvalt, vaid mingi teise rakenduse sees, nt veebilehel või Applet Vieweri abil
  • Canvas - Java klass, mis loob ekraanile ala, millele saab joonistada
  • extends Applet - n-ö pärineb, põlvneb Appletite klassist (ja seega pärib Appleti omadused)
  • implements ActionListener - rakendab sündmuste kuularit (ehk kuulab kasutaja poolt tehtud tegevusi, nt nupuvajutusi, muudatusi tekstikastides jne)
  • actionPerformed - kui mingi tegevus on toimunud, mida siis edasi teha
  • nupp.addActionListener(this) - ütleb, millise tegevuse juurde kuular kuulub ehk millise tegevuse peale vastav kuular reageerima peaks (mõnes programmis võib olla mitu kuularit, siis peaks programm teadma, mille peale mingi sündmus käivitada). Antud juhul jälgib kuular nupuvajutusi
  • Integer.parseInt(...) - muudab teksti täisarvuks. Näiteks tekstikastide puhul loeb programm sinna kirjutatud arvud ka tavatekstiks, mitte arvuks. Seetõttu tuleb need näiteks arvutamise jaoks teisendada arvudeks
  • repaint() - joonistab kogu pildi uuesti (kasutatakse siis, kui midagi vahepea muutus, näiteks kasutaja kirjutas tekstikasti mingi arvu ja vajutas nupule, seetõttu programm peab lugema tekstikastist arvu ja joonistama sellele vastava arvu kujundeid ekraanile)
  • Frame f=new Frame("Joonistus") - tuleb luua uus raam, mille nimi on f ja mis on Frame klassi uus instants. (Loe lisaks: https://courses.cs.ttu.ee/pages/Java:Objektid)



------------------------


Loe ka selgitusi pealkirja "kasutaja andmetele reageerimine" alt, J. Kippari loengumaterjalidest.


------------------------

Ülesanded 2


Nende ülesannete lahendamiseks võib natuke abi saada Java API 8 erinevatest hiirevajutusega seotud sündmustest:
1) https://docs.oracle.com/javase/8/docs/api/
2) https://docs.oracle.com/javase/8/docs/api/java/awt/event/MouseAdapter.html#mouseClicked-java.awt.event.MouseEvent-


4. Tutvu hiirevajutusele reageerimise koodiga ja käivita programm ka oma arvutis
http://minitorn.tlu.ee/~jaagup/kool/java/loeng/pohikursus03/tutvus.htm
5. Muuda koodi nii, et ekraanil on pall (võib olla lihtsalt ring). Kui pallile hiirega vajutada, muutub ta iga vajutuse peale suuremaks.
6. Muuda koodi nii, et kui pallile hiirega vajutada, muutub ta suuremaks, kui hiire nupp on all ja kui hiire nupp lahti lasta, muutub pall taas väiksemaks.
7. Muuda koodi nii, et kui pallile hiirega vajutada, hüppab pall kuhugi teise kohta ekraanil.
8. Muuda koodi nii, et pall liigub Thread.sleep abil kuhugi teise kohta ekraanil.

------------------------


Selgitused


Sarnaselt nupuvajutuste kuulamisega on võimalik kuulata ka hiirevajutusi ja nende peale midagi teha.


  • extends MouseAdapter - MouseAdapter klass on seotud hiirevajutamisega - siin on igasugused kuularid, mis kuulavad hiirevajutusega seotud sündmusi, nt mousePressed
  • mousePressed - tegevused, mida tehakse hiire vajutamise peale. Need on "pakitud" meetodisse ehk funktsiooni public void mousePressed(MouseEvent e)
  • Graphics g=Joonis.this.getGraphics(); - konkreetsed joonistuse graafikaelemendid salvestatakse muutujasse nimega g
  • getGraphics() - loob graafikakonteksti vastavale komponendile
  • g.drawRect(e.getX(), e.getY(), 20, 10); - joonistab ristküliku, kus ristküliku ülemine nurk on hiirevajutuse koordinaadid ekraanil



Kommentaare ei ole:

Postita kommentaar