200 likes | 383 Views
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://www.cs.ut.ee/~jaanus/java/doc/jdk1.4.1/api/. L 10. Ekraanigraafika vahendid (I)
E N D
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://www.cs.ut.ee/~jaanus/java/doc/jdk1.4.1/api/ L10 Ekraanigraafika vahendid (I) [Aabits(2002), vihik 9]
Kuidas teha raam ehk aken? • Kuidas lisada raamile • joonistamise ala ehk tahvel? • Kuidas tahvlile joonistada • - teksti • - lõike • - ristkülikuid • - ringe või ovaale
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
Kuidas lisada raamile joonistamise ala ehk tahvel? 1. Teha klass Tahvel. 2. Klassi Jooniseraam lisada korraldus uue tahvli lisamiseks.
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
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
Kuidas tahvlile joonistada? 3. Teha klass Joonis, mis sisaldab vajalikku joonistamiste meetodit joonistada( ). 4. Klassi Tahvel lisada selle meetodi rakendamine.
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()
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
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
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
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
Muster I Joonistamine ekraanikoordinaatides Vt. L10/ programmid/ ekraanikoordinaatides/JoonisMuster.java Klassi Tahvel pole vaja muuta. Peaklassis Jooniseraam võib soovi korral muuta raami esialgset paiknemist ja suurust määravaid konstante.
Muster II Joonistamine tavakoordinaatides Vt. L10/ programmid/ tavakoordinaatides/JoonisMuster.java Klassi Tahvel pole vaja muuta. Peaklassis Jooniseraam võib soovi korral muuta raami esialgset paiknemist ja suurust määravaid konstante.
Failis JoonisMuster.java tuleb muuta joonte // ============================= vahel paiknevat osa //============================= Lahendamiseks on kindlasti vajalikud veel klassid (Aabitsast) Punkt ja Sirge.
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
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
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
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
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