1 / 33

Edasijõudnutele: Java kogu “arsenali” kirjeldus on saadaval

Neile, kel pole uut aabitsat: kõik (uue) aabitsa programmitekstid on saadaval http://www.cs.ut.ee/~kiho/progr/Aabits/Programmid/. Edasijõudnutele: Java kogu “arsenali” kirjeldus on saadaval http://java.sun.com/j2se/1.4.2/docs/api/index.html. Ekraanigraafika vahendid (I)

rianne
Download Presentation

Edasijõudnutele: Java kogu “arsenali” kirjeldus on saadaval

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Neile, kel pole uut aabitsat: kõik (uue) aabitsa programmitekstid on saadaval http://www.cs.ut.ee/~kiho/progr/Aabits/Programmid/ Edasijõudnutele: Java kogu “arsenali” kirjeldus on saadaval http://java.sun.com/j2se/1.4.2/docs/api/index.html Ekraanigraafika vahendid (I) [Aabits(2002), vihik 9]

  2. Kuidas teha raam ehk aken? • Kuidas lisada raamile • joonistamise ala ehk tahvel? • Kuidas tahvlile joonistada • - teksti • - lõike • - ristkülikuid • - ringe või ovaale

  3. Kuidas teha raam ehk aken? import java.awt.*; // Point, Dimension import javax.swing.*; // JFrame class Jooniseraam{// PEAKLASS // raam: public static void main(String[] args){ JFrame raam = new JFrame("Joonis"); raam.setLocation(new Point(100, 100)); raam.setSize(new Dimension(600, 500)); raam.show(); } } Raami asukoht ekraanil ülemine vasak nurk: (100; 100) Raami mõõtmed laius: 600, kõrgus: 500

  4. Kuidas lisada raamile joonistamise ala ehk tahvel? 1. Teha klass Tahvel. 2. Klassi Jooniseraam lisada korraldus uue tahvli lisamiseks.

  5. import java.awt.*; // Graphics import javax.swing.*; // JPanel class Tahvel extends JPanel{ // tahvel joonise kujutamiseks public void paintComponent(Graphics g){ super.paintComponent(g); } } 1. Klass Tahvel

  6. import java.awt.*; // Point, Dimension import javax.swing.*; // JFrame class Jooniseraam{// PEAKLASS // tahvliga raam public static void main(String[] arg){ JFrame raam = new JFrame("Joonis"); raam.setLocation(new Point(100, 100)); raam.setSize(new Dimension(600, 500)); raam.getContentPane().add(new Tahvel( )); raam.show(); } } 2. Klassi Jooniseraam lisada korraldus uue tahvli lisamiseks

  7. Kuidas tahvlile joonistada? 3. Teha klass Joonis, mis sisaldab vajalikku joonistamiste meetodit joonistada( ). 4. Klassi Tahvel lisada selle meetodi rakendamine.

  8. import java.awt.*; // Graphics, Color, Point class Joonis{ // Põhimeetod: joonistada(), rakendamiseks klassist Tahvel // konstant: static final Color TAUST = Color.white; // tahvli taustvärv static void joonistada(Tahvel t, Graphics g){ // Antud: tahvel t, graafikakontekst g ja ... // Tulemus: joonis tahvlil t t.setBackground(TAUST); // seada tahvli taustvärv // raamitud tekst tahvli ülemisse vasakusse nurka: g.setColor(Color.red); g.drawString(”Minu esimene joonis”, 15, 20); // tekst g.drawRect(10, 7, 125, 15); // raamida tekst } } 3. Teha klass Joonis, mis sisaldab vajalikku joonistamiste meetodit joonistada()

  9. import java.awt.*; // Graphics import javax.swing.*; // JPanel class Tahvel extends JPanel{ // tahvel joonise kujutamiseks public void paintComponent(Graphics g){ super.paintComponent(g); Joonis.joonistada(this, g); }//paintComponent }//Tahvel 4. Klassi Tahvel lisada selle meetodi rakendamine

  10. Muuta/täiendada soovi kohaselt meetodit joonistada() klassis Joonis. Klassid Jooniseraam ja Tahvel jäävad samaks. Kuidas teha teistsuguseid jooniseid? Kasutada on üksikute elementide joonistamismeetodid süsteemklassist Graphics. Järgnevas nende rakendamise näiteidgraafikakonteksti isendi osuti g korral: vgt g.drawString(“vgt”, x, y); (x;y) (x;y) kõrgus g.drawOval(x, y, laius, kõrgus); laius

  11. g.setColor(v); seada v joonistamise jooksvaks värviks, v näiteid: Color.black must Color.blue sinine Color.cyan hele rohekas-sinine Color.darkGray tumehall Color.gray hall Color.green roheline Color.lightGray helehall Color.magenta lilla Color.orange oranž Color.pink roosa Color.red punane Color.white valge Color.yellow kollane

  12. Jooksva kirjakuju seadmise (enne g.drawString()) näiteid: g.setFont(new Font(“Serif”, Font.PLAIN, 14)); g.setFont(new Font(“Courier”, Font.BOLD, 12)); g.setFont(new Font(“SansSerif”, Font.ITALIC, 16)); kirja tüüp kuju suurus PLAIN - tavaline; BOLD - poolpaks, ITALIC - kursiiv g.drawLine(x, y, x1, y1); - lõik (x;y)---(x1;y1) g.drawRect(x, y, laius, kõrgus); - ristküliku küljed, (x;y): ülemine vasak nurk g.fillRect(x, y, laius, kõrgus); - ristkülik g.drawOval(x, y, laius, kõrgus); - ovaaljoon mõttelisse ristkülikusse g.fillOval(x,y,laius, kõrgus); - ovaal mõttelisse ristkülikusse

  13. Muster I Joonistamine ekraanikoordinaatides ekraanikoordinaatides/JoonisMuster.java Klassi Tahvel pole vaja muuta. Peaklassis Jooniseraam võib soovi korral muuta raami esialgset paiknemist ja suurust määravaid konstante.

  14. Muster II Joonistamine tavakoordinaatides tavakoordinaatides/JoonisMuster.java Klassi Tahvel pole vaja muuta. Peaklassis Jooniseraam võib soovi korral muuta raami esialgset paiknemist ja suurust määravaid konstante.

  15. Failis JoonisMuster.java tuleb muuta joonte // ============================= vahel paiknevat osa //============================= Lahendamiseks on kindlasti vajalikud veel klassid (Aabitsast) Punkt ja Sirge.

  16. Funksiooni graafiku joonistamine Klassiskeem Joonis x0 x1 xSamm fxVärv fxValem f ( ) joonistada( ) juhupunkt( ) teisend() joonistadaPunkt( ) joonistadaLõik( ) joonistadaRing( ) joonistadaTeljed( ) Jooniseraam main( ) Tahvel paintComponent( ) Punkt Aabits, vihik 2 Sirge Aabits, vihik 2 Fail JoonisGr.java

  17. Klass Joonis.java (failis JoonisGr.java) Meetodite väljakutsete hierarhia tahvlile joonistamisel <Tahvel>.paintComponent Joonis.joonistada Joonis.joonistadaTeljed Joonis.f Joonis.joonistadaLõik Joonis.teisend

  18. Ekraanigraafika vahendid (II) Rakend [Aabits(2002), vihik 15]

  19. Applet LihtneRakend TAUSTA_VÄRV LAIUS KÕRGUS g init( ) paint( )

  20. import java.awt.*; import java.applet.Applet; public class LihtneRakend extends Applet{ // värvid: static final Color TAUSTA_VÄRV = Color.yellow; // rakendi suurus: int LAIUS, KÕRGUS;// rakendi mõõdud Graphics g; // rakendi graafikakontekst

  21. public void init(){ setBackground(TAUSTA_VÄRV); // värvida taust setVisible(true); // rakend nähtavaks g = getGraphics(); // graafikakontekst // parameetrid rakendi suuruse põhjal: LAIUS = getSize().width; KÕRGUS = getSize().height; }

  22. public void paint(Graphics g){ • Joonis.joonista(LAIUS, KÕRGUS, g); • } • // Märkus. Klassi Joonis meetod joonista() • // erineb meetodist joonistada() • // vaid selle poolest, et tahvli • // asemel antakse ette rakend • }

  23. Rakendiviide: - - - - - - - - - - - - - - - - - - - - - - - - - - fail LihtneRakend.html <html> <title>PROOV</title> <applet code = LihtneRakend.class width = 550 height = 450> </applet> </html> Rakendikäituri käivitamine: appletviewer LihtneRakend.html

  24. Meetodeid: käivitub: public void init( ) // rakendi laadimisel public void paint(Graphics g ) // rakendi // ekraaniala muutumisel (ilmumisel) public void start( ) // pärast rakendi laadimist // ja ilmumist ekraanile

  25. Ülesanne: joonistada ümmargune südamik; selle ümber iga 1 sekundi järel järjest suurem kontsentriline ring; pärast 25-nda kontsentrilise ringi joonistamist kustutada ringid ja alustada uuesti esimese ringi joonistamisest. rakend taust (kollane) südamik (roheline) ringid (punased)

  26. import java.awt.*; // --> Graphics, Color import javax.swing.*; // --> JApplet public class Rakend extends JApplet { // värvid: final Color TAUST = Color.yellow; final Color SÜDAMIK = Color.green; final Color RING = Color.red; // rakendi mõõdud: final int LAIUS = 300; final int KÕRGUS = 300; // esimese ringi ja südamiku mõõdud ning algpunkt: int laius = LAIUS/4; int kõrgus = KÕRGUS/4; int keskX = LAIUS/2 - laius/2; int keskY = KÕRGUS/2 - kõrgus/2;

  27. Graphics g; int iRing; // parajasti joonistatava ringi number // seatakse meetodis paint() public void paint(Graphics g){ //käivitatakse esimesena setBackground(TAUST); // sama, mis: //g.setColor(TAUST); //g.fillRect(0,0,getSize().width,getSize().height); g.setColor(SÜDAMIK); g.fillOval(keskX, keskY, laius, kõrgus); // ringidega algusest peale: iRing = 99; // et kustutataks kõik ringid }//paint(g)

  28. public void init( ){ setSize(LAIUS, KÕRGUS); // mõõdud rakendile g = getGraphics(); // rakendi graafikakontekst setVisible(true); // rakend nähtvaks }//init public void start( ){ for(; ; iRing++){ // kontsentr. ringide joonistamise tsükkel if(iRing > 24){ // ringidega algusest peale iRing = 0;

  29. // kustutada kõik 25 ringi: g.setColor(TAUST); for(int i = 0; i < 25 ; i++){ int k = i*5; g.drawOval(keskX-k, keskY-k, laius+2*k, kõrgus+2*k); }//for i }//if // joonistada üks ring (number iRing):

  30. g.setColor(Color.red); int k = iRing*5; g.drawOval(keskX-k, keskY-k, laius+2*k, kõrgus+2*k); // viivitus 1 sekund: try{ Thread.currentThread().sleep(1000); } catch(InterruptedException e){} }//for iRing }//start }//Rakend

  31. Hääldusjuhiseid black [blæk ] – must blue[blu ] – sinine bold[bəʊld ] – poolpaks [üks kirja kujudest] color [kʌlɜː] – värv; värvus cyan [saɪæn ] – heleroheline; tsüaniidne component [kʌmpəʊnʌnt ] – komponent courier [kɜːiɜː] – käskjalg, kuller [üks kirja tüüpidest] dark [dɒrk ] – tume dimension [dɪmenʃʌn ] – mõõde; dimensioon draw [drɔː] – joonistama font [fɒnt ] – kiri; font

  32. frame [freɪm ] – raam gray [greɪ ] – hall green [grin ] – roheline import [ɪmpɔːrt ] – importida italic [aɪtælɪk ] – kursiiv [üks kirja kujudest] J [dʒeɪ ] – J light [laɪt ] – hele location [ləʊkeɪʃʌn ] – asukoht magenta [mʌdʒentʌ ] – lillakaspunane orange [ɔːrʌndʒ] – oranž oval [əʊvʌl ] – ovaal paint [klæs ] – värvida panel [klæs ] – paneel pink [klæs ] – roosa

  33. plain [pleɪn] – harilik [üks kirja kujudest] point [pɔɪnt ] – punkt rectangle [rektæŋgʌl ] – ristkülik red [red ] – punane sansserif [sansserif ʃəʊ ] – sansseriif [üks kirja tüüpidest] serif [serif ] – seriif[üks kirja tüüpidest] set [set ] – seada show [ʃəʊ ] – näidata size [saɪz ] – suurus super [supɜː] – ülem- swing [swɪŋ ] – kiik; hoog white [waɪt ] – valge yellow [jeləʊ ] – kollane

More Related