objektno programiranje skripta stud
TRANSCRIPT
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 1/27
Objektno programiranje –JAVA-ZADACI
1
OBJEKTNO PROGRAMIRANJESKRIPTA ZA VEZBE
Asistent: Saracevic Muzafer
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 2/27
Objektno programiranje –JAVA-ZADACI
2
PLAN RADA NA VEZBAMA IZ PREDMETA
“OBJEKTNO PROGRAMIRANJE”
CASOVI OPIS DATUM
1,2
UVOD-osnove objektno-orjentisanog programiranja,osnovni pojmovi,tipovi podataka,programske instrukcije
3,4 vezba br.1-Objekti I klase-primerPravougaonik
5,6 vezba br.2-Objekti I klase- primerDatum
7,8 vezba br.3-Objekti I klase- primerTacka
9,10 vezba br.4-Objekti I klase- primerSemafor
11,12 Priprema za kolokvijum (primeriStudent/Automobil)
13,14 Kolokvijum br.1 (*jedan zadatak – java objekti i klase)
15,16 vezba br.1 & 2-Apleti-Graficki oblici I elementi
17,18 vezba br.3 & 4-Apleti-Graficki oblici I elementi
19,20 vezba br.5 & 6-Apleti-“ActionPerformed”
21,22 vezba br.7 & 8-Apleti-“MouseListener,KeyListener” dogadjaji
23,24 Java-Grafika
25,26 Java-Grafika
27,28 Java-Grafika
29,30
Kolokvijum br.2 (* tri zadatka – 1.apleti-graficki oblici i elementi,
2.apleti-ActionPerformed,dogadjaji
3.java-grafika
*zadaci predvidjeni za smostalni rad studenata su : 9,10,11,12,13,14
Poeni: Kriterijum ocenjivanja:
Max.poena
Min.za
polaganje
Kolok. br.1 40 20
Kolok. br.2 60 30
Redovnost*bonus 10 %
∑ 110
51-60 sest(6)
61-70 sedam(7)
71-80 osam(8)
81-90 devet(9)
91-100 deset(10)
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 3/27
Objektno programiranje –JAVA-ZADACI
3
Objektno programiranje
Osnovni koncepti Sintaksa Jave izuzetno podseća na sintaksu jezika C++, mada nije jednaka njoj.
Sintaksna pravila neće biti posebno obrañena, jer smatramo da su dovoljnoočigledna iz primera koji slede.
-Tipovi podataka
Java operiše sa dve vrste tipova podataka: primitivnim tipovima i objektima.
Klase i objekti Druga vrsta podataka sa kojima operiše Java program su objekti. Objekti
predstavljaju osnovni koncept objektno-orijentisane paradigme u modelovanjusistema. Svaki objekat realnog sistema koga posmatramo predstavljamo
odgovarajućim objektom koji je sastavni deo modela sistema. Objekte koji
zajedničke osobine (ne moraju imati iste vrednosti tih osobina) možemo da
opišemo klasom.
Kreiranje objekata koji predstavljaju instance (primerke) ove klase može se
obaviti na sledeći način:
Automobil a = new Automobil();Automobil b = new Automobil();
Time su kreirana dva objekta klase Automobil, koji su nazvani a i b. Atributu radi
objekta a može se pristupiti pomoću:a.radi
Reference na objekte Kada smo u prethodnom primeru, u metodi main, napisali:Automobil a;
a = new Automobil();
deklarisali smo promenljivu a tipa Automobil, a zatim kreirali objekat klase
Automobil i vezali ga za tu promenljivu a.
Operatori Operatori koji služe za gradnju Java izraza su operatori koji su, praktično,
preuzeti iz jezika C++. Možemo ih grupisati u nekoliko grupa:
• aritmetički operatori (+, -, *, /)
• relacioni operatori (==, <, >, =, !=, >=, <=)
• logički operatori (&&, ||, !)
• bit-operatori (&, |, !)
• operator dodele (=)
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 4/27
Objektno programiranje –JAVA-ZADACI
4
Bitna razlika u odnosu na C++ je postojanje primitivnog tipa boolean; vrednost
logičkih izraza mora biti ovog tipa. To znači da su vrednosti u if ili while
konstrukcijama logičkog tipa, pa nije moguće pisatiwhile (1)
ili, još opasnijeif (a = 1)
Prioritet operatora je definisan na standardan način. Detaljna specifikacija
operatora data je u specifikaciji jezika.
Nasle ñ ivanje
Nasleñivanje, kao jedan od osnovnih koncepata objektno-orijentisanog programiranja,
postoji i u Javi. Kada jedna klasa nasleñuje drugu, potrebno je to
naglasiti u okviru teksta klase klazulom extends kao u sledećem primeru, gde
klasa BorbeniAvion nasleñuje klasu Avion:class Avion {
Krilo levo, desno;
void poleti() { ... }void sleti() { ... }
}
class BorbeniAvion extends Avion {
Top top;
Bomba[] bombe;
void poleti() { ... }
void pucaj() { ... }
}Java ne dopušta višestruko nasleñivanje (onako kako je to definisano recimo u jeziku C++). Dakle klasa može da nasledi najviše jednu klasu.
Modifikatori pristupa
U Javi postoje sledeća tri modifikatora pristupa:
• public: označava da su atribut ili metoda vidljivi za sve klase uprogramu
• protected: atribut ili metoda su vidljivi samo za klase naslednice
• private: atribut ili metoda su vidljivi samo unutar svoje klase
•
nespecificiran (tzv. friendly): atribut ili metoda su vidljivi sa klase iz istogPaketa
Klasa String
Klasa String se nalazi u paketu java.lang i predstavlja string kao tip podatka
(sećamo se da stringovi nemaju odgovarajući primitivni tip u Javi). U tom
smislu, klasa String je kao i svaka druga Java klasa osim što ima donekle
specijalan tretman od strane kompajlera. U tom smislu, "tekst" u Java programu predstavlja
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 5/27
Objektno programiranje –JAVA-ZADACI
5
objekat klase String čija je vrednost inicijalizovana na dati tekst. Zbog toga je
sasvim ispravno pisatiString x = "tekst";
što ima isti efekat kao i29
String x = new String("tekst");
Apleti -Pojam apleta
Apleti su posebna vrsta Java programa koji su namenjeni za ugrañivanje u
HTML stranice. U okviru stranice aplet dobija na raspolaganje odreñenu
pravougaonu površinu čije su dimenzije date u pikselima. U tom smislu, apletse u HTML stranicu ugrañuje na sličan način kao i slika.
Kada Web čitač pristupi stranici koja sadrži aplet, automatski će preuzeti i
programski kod apleta (prevedene Java klase), pokrenuti Java virtuelnu mašinu
i početi izvršavanje apleta.
Aplet je Java program koji na raspolaganju ima gotovo sve mogućnosti
klasičnih Java aplikacija, izuzev dva bitna ograničenja, uvedena iz bezbednosnih
razloga:
• apleti ne mogu da pristupe fajl-sistemu računara na kome se izvršavaju;
• apleti ne mogu da uspostave mrežnu konekciju sa bilo kojim računaromosim sa Web serverom sa koga su preuzeti.
Aplet je zapravo klasa koja nasleñuje klasu Applet (za AWT) ili JApplet (zaSwing). Pisanje apleta svodi se na nasleñivanje klase JApplet i implementiranje
odgovarajućih metoda. Neke od najvažnijih metoda pobrojane su ovde:
• init : poziva je Web čitač prilikom učitavanja apleta u JVM Web čitača
• destroy: poziva je Web čitač prilikom uklanjanja apleta iz JVM Web čitača;obično se koristi za oslobañanje zauzetih resursa (npr. zaustavljanje niti
ili zatvaranje mrežne konekcije)
• start : poziva je Web čitač kada hoće da naznači da aplet treba da počne sasvojim izvršavanjem
• stop: analogno prethodnom, poziva je Web čitač kada aplet treba da
prekine sa svojim izvršavanjem
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 6/27
Objektno programiranje –JAVA-ZADACI
6
-OSNOVNI POJMOVI U JAVI-
1.2 Programski jezik Java Iako je Java virtuelna mašina sastavni deo specifikacije, o njoj se govori veoma
retko; praktično je koriste samo autori kompajlera i JVM interpretera iza
konkretne računarske platforme. Sa druge strane, većina Java programeragovori o drugom delu Java specifikacije, samom programskom jeziku Java, koji
je i tema preostalog teksta u ovom poglavlju.
Može se reći da je Java objektno-orijentisani programski jezik opšte namene,
posebno pogodan za pisanje konkurentnih, mrežnih i distribuiranih programa.
1.4 Klase i objekti Druga vrsta podataka sa kojima operiše Java program su objekti. Objektipredstavljaju osnovni koncept objektno-orijentisane paradigme u modelovanju
sistema. Svaki objekat realnog sistema koga posmatramo predstavljamo
odgovarajućim objektom koji je sastavni deo modela sistema. Objekte koji
zajedničke osobine (ne moraju imati iste vrednosti tih osobina) možemo daopišemo klasom. U tom smislu, objekat je jedna instanca (primerak) svoje klase.
Klasa, dakle, predstavlja model objekta, koji obuhvata atribute i metode.
1.9 Inicijalizacija objekata
Prilikom konstruisanja novog objekta, nakon alokacije potrebne memorije za
smeštaj objekta, biće pozvana specijalna metoda namenjena za inicijalizacijuobjekta nazvana konstruktor . Konstruktor obavezno ima naziv jednak nazivu
klase, i nema nikakav povratni tip, čak ni void.
U odeljku 1.6 već je bilo reči o problemu uklanjanja nedostupnih objekata iz
memorije. Za taj posao zadužen je poseban pozadinski proces koji se naziva
garbage collector (GC). Ovaj proces radi nezavisno od pokrenutog programa, u
smislu da sam odlučuje u kom trenutku će iz memorije osloboditi kojinedostupni objekat. Pored automatske dealokacije memorije, GC je zadužen i za
automatsku defragmentaciju memorije.
Za razliku od jezika C++, Java klase ne mogu imati destruktore. Destruktori su
specijalne metode koje se pozivaju neposredno pre uklanjanja objekta iz
memorije. Svu potrebnu dealokaciju memorije u Javi obavlja GC proces. U
trenutku dealokacije podrazumeva se da je Java objekat oslobodio ostale resurse
koje je koristio (otvorene datoteke, mrežne konekcije, itd). Ukoliko je
neophodno obaviti neku operaciju neposredno pre nego što GC uništi objekat,
ta operacija se može implementirati u okviru specijalne metode finalize. Metoda
finalize se poziva neposredno pre uništavanja objekta od strane GC-a.
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 7/27
Objektno programiranje –JAVA-ZADACI
7
1.11 Metode i njihovi parametri Sintaksa definisanja metoda (u smislu navoñenja njihovog imena, liste
parametara i tipa rezultata) je nalik sintaksi u jeziku C++. Sledi primer jednemetode koja prima tri parametra, sa tipovima String, int i boolean, a vraća
vrednost tipa void (tj. ne vraća rezultat).
1.20 Redefinisanje metoda Redefinisanje metoda (method overriding) je postupak kada klasa naslednica
redefiniše telo metode nasleñene od roditeljske klase. U Javi se to specificira
prostim navoñenjem nove definicije metode u klasi naslednici.
1.21 Apstraktne klase Apstraktne klase su klase koje ne mogu imati svoje instance (objekte). Razlog za
to je što je implementacija neke od metoda izostavljena.Njena implementacija nije navedena. Samim tim klasa je apstraktna pa se i za
nju to mora navesti navoñenjem ključne reči abstract ispred class.
1.23 Unutrašnje klase Od Java verzije 1.1 klasa može, osim atributa i metoda, da poseduje i tzv.
unutrašnje klase (inner classes). Klasa Unutrasnja je, u principu, vidljiva samo unutar klase Spoljasnja, mada se to
može promeniti modifikatorima pristupa na uobičajen način. Instanca
unutrašnje klase se može kreirati i izvan nje, ali samo preko instance spoljašnje
klase,
1.22 Interfejsi-vistestruko nasledjivanje
Interfejsi su poseban koncept u Javi: nisu u pitanju klase, ali interfejsi mogu dasadrže deklaracije apstraktnih metoda, konstanti i statičkih atributa. Vidimo da interfejsi podsećaju na apstraktne klase. Veza izmeñu klasa i
interfejsa je sledeća: kaže se da klasa implementira (a ne nasleñuje) interfejs.
Klasa može da implementira više interfejsa istovremeno, što nije slučaj sa
nasleñivanjem. Nema prepreke da klasa koja nasleñuje drugu klasu
implementira i neke interfejse. Jedan interfejs može da nasledi drugi interfejs.
1.12 Klju č na re č final Ključna reč final se može naći ispred definicije atributa ili metode unutar
definicije klase. Ako se nañe ispred atributa, označava atribut kome nijemoguće promeniti vrednost. Drugim rečima, final atribut predstavlja
konstantu. Inicijalizacija prilikom deklaracije atributa je obavezna. Ključna reč final ima drugo značenje kod metoda: označava metode koje se ne
mogu redefinisati prilikom nasleñivanja date klase
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 8/27
Objektno programiranje –JAVA-ZADACI
8
1.13 Klju č na re č static Ključna reč static se može naći ispred definicije atributa ili metode, nezavisno
od pojave ključne re
či final. Kada se na
ñe ispred definicije atributa, ozna
čavaatribut koji pripada klasi, a ne objektima (kao instancama klase). Drugim
rečima, može se reći da svi objekti date klase dele istu vrednost statičkog
atributa. Statički atribut je pridružen klasi, a ne njenim instancama. U tom smislu, može
mu se pristupiti i kada nije kreiran nijedna instanca klase.
1.16.1 Paketi Java programi se sastoje isključivo iz klasa. Broj klasa koje čine program može
biti relativno velik, pa je uvoñenje nekakve organizacije u takav skup klasaneophodno. Paketi su način da se klase grupišu po nekom kriterijumu. Paketi
mogu da sadrže klase ili potpakete, analogno odnosu direktorijuma i datoteka u
okviru fajl-sistema.
3.1 AWT i Swing Programski jezik Java je, u svojoj inicijalnoj verziji, posedovao biblioteku
komponenti za izgradnju grafičkog korisničkog interfejsa (GUI) zvanu Abstract
Window Toolkit (AWT). U pitanju je biblioteka koja se zasniva na korišćenjukomponenti korisničkog interfejsa koje su dostupne na platformi na kojoj se
program pokreće (Windows, Motif , Macintosh, itd). To znači da je implementacija
AWT komponenti različita za svaki operativni sistem. Java klase koje predstavljaju
AWT komponente koriste su u velikoj meri native programski kod koji
je vršio interakciju sa operativnim sistemom.
Svaka klasa mora da pripada nekom paketu. Ako se ne navede kom paketu
pripada data klasa, podrazumeva se da pripada tzv. korenskom ili implicitnompaketu. Taj korenski paket nema posebno ime. On može da sadrži klase i
potpakete, koji sa svoje strane takoñe mogu da sadrže klase i potpakete.
1.16.2 CLASSPATH S obzirom na do sada izloženo, korišćenje klase Vector iz paketa java.util bi
značilo da se odgovarajuće stablo direktorijuma java\util\... koje sadržikompajlirane klase mora kopirati unutar strukture direktorijuma svake
aplikacije koju pišemo. Time se bespotrebno zauzima prostor i komplikuje
održavanje softvera. Zato postoji način da se paketi sa klasama koji se koriste iz
više aplikacija čuvaju na jednom mestu, a sve aplikacije će pomoću odgovarajućeg
mehanizma te klase videti kao da je struktura direktorijuma iskopirana u
okviru svake aplikacije. U pitanju je mehanizam sličan korišćenju PATH promenljive
okruženja (environment variable).
1.18 Nasle ñ ivanje
Nasleñivanje, kao jedan od osnovnih koncepata objektno-orijentisanog programiranja,
postoji i u Javi. Kada jedna klasa nasleñuje drugu, Java ne dopušta višestruko nasleñivanje (onako kako je to definisano recimo u
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 9/27
Objektno programiranje –JAVA-ZADACI
9
jeziku C++). Dakle klasa može da nasledi najviše jednu klasu. U Javi postoje sledeća tri modifikatora pristupa:
• public: označava da su atribut ili metoda vidljivi za sve klase u
programu
• protected: atribut ili metoda su vidljivi samo za klase naslednice
• private: atribut ili metoda su vidljivi samo unutar svoje klase
• nespecificiran (tzv. friendly): atribut ili metoda su vidljivi sa klase iz istog
paketa
1.24 Polimorfizam Polimorfizam je koncept koji omogućava objektima da ispolje različito
ponašanje, zavisno od njihove klase, bez obzira što se oni koriste kao instance
nekog zajedničkog roditelja.
1.25 Izuzeci Izuzeci su mehanizam za kontrolu toka programa koji se koristi za obradu
grešaka nastalih u toku izvršavanja programa. Segment programskog koda za
koji smatramo da može da izazove izuzetak možemo da smestimo u tzv.try/catch blok, Izuzetak može biti, na primer, deljenje nulom, pristup elementu niza koji je
izvan granice niza, itd. Ukoliko se prilikom izvršavanja koda koji se nalazi u try
bloku desi izuzetak, tok izvršavanja programa se automatski prebacuje na
početak catch bloka. Nakon izvršavanja koda u catch bloku, program dalje
nastavlja rad.
1.27 Klasa String Klasa String se nalazi u paketu java.lang i predstavlja string kao tip podatka
(sećamo se da stringovi nemaju odgovarajući primitivni tip u Javi). U tom
smislu, klasa String je kao i svaka druga Java klasa osim što ima donekle
specijalan tretman od strane kompajlera.
2.1 Kreiranje programskih niti
Programska nit (thread ) se u Javi predstavlja objektom klase Thread ili njene
naslednice. Klasa Thread je, u suštini, roditeljska klasa koju je potrebno nasleditiprilikom definisanja nove programske niti. Kreiranje instance ovakve klase nije
dovoljno da bi se nit pokrenula. Za pokretanje niti potrebno je pozvati metodu
start . Ne treba pozivati metodu run direktno, jer to neće izazvati potreban
efekat. Metoda start (koja se obično ne redefiniše) će obaviti potrebnu
inicijalizaciju i pozvati metodu run. Drugi način za kreiranje programske niti je implementacija interfejsa Runnable.
Ovaj postupak se obično koristi kada nije moguće naslediti klasu Thread (zato
što nova klasa već nasleñuje neku klasu, a višestruko nasleñivanje nije
dozvoljeno). Implementiranje interfejsa Runnable se svodi na implementiranje
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 10/27
Objektno programiranje –JAVA-ZADACI
10
metode run koja ima istu funkciju kao i u prethodnom slučaju
2.4 Sinhronizacija niti Prethodni primer predstavlja program u kome izvršavanje jedne niti ne utiče na
izvršavanje ostalih niti (osim što ta nit konkuriše za zauzeće procesora).
Konkurentni programi ovakve vrste su relativno retki. Kada je potrebno da dve
niti komuniciraju, komunikacija se mora obaviti putem zajedničkog (deljenog)
resursa. U Javi je u pitanju zajednički objekat kojem obe niti mogu da pristupe.
Kako niti dobijaju deo procesorskog vremena na osnovu odluke Java virtuelne
mašine i operativnog sistema, ne možemo biti sigurni da jedna nit u tokupristupa deljenom objektu neće biti prekinuta i kontrola biti predata drugoj niti
koja isto tako može početi da pristupa deljenom objektu i izazvati greške
prilikom nastavka izvršavanja prve niti (koja u objektu zatiče druga
čije stanje uodnosu na trenutak kada je bila prekinuta).
Zbog toga je neophodno koristiti mehanizam zaključavanja objekata koji
obezbeñuje da najviše jedna nit može da pristupa deljenom objektu u nekom
periodu vremena. Ovaj mehanizam je u Javi implementiran pomoću tzv.synchronized blokova. Početak synchronized bloka predstavlja zaključavanje objekta od strane niti. Kraj
bloka predstavlja oslobañanje objekta. Kada hronološki prva nit pokuša da uñe
u synchronized blok, dobiće pravo pristupa i zaključaće objekat (acquire lock ). Sve
dok ta nit ne oslobodi objekat (release lock ), druge niti neće moći da mu pristupe.
Ako neka druga nit pokuša da uñe u svoj synchronized blok, biće blokirana u toj
tački sve dok prva nit ne oslobodi objekat. Tada
će druga nit dobiti pravopristupa, zaključati objekat i ući u svoj synchronized blok.
3.9.1 Pojam apleta
Apleti su posebna vrsta Java programa koji su namenjeni za ugrañivanje u
HTML stranice. U okviru stranice aplet dobija na raspolaganje odreñenu
pravougaonu površinu čije su dimenzije date u pikselima. U tom smislu, apletse u HTML stranicu ugrañuje na sličan način kao i slika. Aplet je zapravo klasa koja nasleñuje klasu Applet
8.3 Servleti
Servleti su jedna od tehnologija za generisanje dinamičkih Web sadržaja. Da bi
se servleti mogli koristiti, Web server mora da ima odgovarajuću podršku za
servlete. Pisanje servleta je moguće samo u programskom jeziku Java, tako da jeza njihovo izvršavanje potrebna i JVM (koju najčešće obezbeñuje Web server). Servlet je, zapravo, Java klasa koja nasleñuje standardnu klasu HttpServlet .
Klase i interfejsi koji se koriste u pisanju servleta nalaze se u paketima
javax.servlet i javax.servlet.http.
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 11/27
Objektno programiranje –JAVA-ZADACI
11
-ZADACI-OBJEKTI I KLASE-
1. (a) Formirati klasu pravougaonik koji omogucava rad sa pravougaonicima.
-PODACI
- x –kordinata i y-kordinata gogrnjeg levog ugla
- sirina ( s) i visine (v)
svi podaci su (int).
- METODI
- konstruktor bez pocetnih vrednosti (formira pravaugaonik iz temena (0,0)
sirine 10 i visine 10 )
-konstruktor sa datom x-kord., y-kord., sirinom i visinom
-
metod za odredjivanje koordinata donjeg desnog temena desna_donja_X()-> (
int )
desna_donja_Y()-> (int )
- metod za odredjivanje duzine dijagonale(d 2=s
2+v
2) dijagonala()->
(double)
- metod za odredjivanje povrsine.(s*v) povrsina() -> (int)
(b) Formirati podklasu puni_pravougaonik koja sadrzi dodatno-PODACI
- boja tipa string
predefinisati:
-konstruktor bez pocetnih vrednosti(boja=”bela”)
-konstruktor sa zadatim vrednostima(x,y,s,h,boja(c) Formirati podklasu kvadrat koja ima sve podatke iste ali su
visina I sirina uvek jednaki.
predefinisati:
-konstruktor bez pocetnih vrednosti isti kao super
-konstruktor sa zadatim vrednostima(x,y,s) koji postavja s i v na s
(d) Napisati klasu test koja ce biti izvrsna I u njoj:
-formirati p1 pravaougaonik(10,10,20,30)
-formirati p2 pravougaonik (12,12,16,26,crveni)
-formirati k1 kvadrat (14,16,14)
- formirati p3 pravaugaonik iz donjeg desnog temena prvog pravougaonika
visine 14 i sirine 15-Na standardni izlaz ispisati: -duzinu dijagonale p2
-povrsinu kvadrata k1
-koordinate gornjeg levog temena p3
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 12/27
Objektno programiranje –JAVA-ZADACI
12
2. (a) Formirati klasu Datum koja omogucava rad sa datumima.
-PODACI
- d-dan, m-mesec i g-godinasvi podaci su celi brojevi.
- METODI
- konstruktor bez pocetnih vrednosti (postavlja datum na 1.1.1.)
- konstruktor sa datim vrednostima d-dan,m-mesec i g-godina
- metod za odredjivanje dana ,meseca I godine d()->(int)
m()-> (int )
g()->(int)
- metod za odredjivanje da li je godina prestupna prestupna()-> (int)
- metod za odredjivanje da li je ispravan datum
ispravan() -> (int)
(b) Formirati podklasu p_n_e koja sadrzi dodatno-PODACI
- era tipa string (“nove ere” ili “pre nove ere”)
predefinisati:
- konstruktor bez pocetnih vrednosti(era=”nove ere”)
- konstruktor sa zadatim vrednostima(d,m,g,era)
- metodu za ispisivanje datuma na standardni izlaz.(d.m.g.era).
ispis()->void
(c) Formirati podklasu datum2005 koja ime sve podatke kao datum ali joj je godina uvek 2005.
predefinisati:
-konstruktor bez pocetnih vrednosti (g=2005)
-konstruktor sa zadatim vrednostima(d,m)
-metodu za ispisivanje datuma na standardni izlaz
(d) Napisati klasu test koja ce biti izvrsna i u njoj:
-formirati datume D1(1,1,2000) i D2(29,2,2005)
-formirati datume D3(1,2,3,”pre nove ere”) i D4()
-formirati D (11,6) ove godine
-Na standardni izlaz ispisati: -datumr D1,D2-da li je godina prestupana u datumu D2
-da li je ispravan D1
-datume D3 , D4
- datum D
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 13/27
Objektno programiranje –JAVA-ZADACI
13
3. (a) Formirati klasu Tacka koja omogucava rad sa tackama.
-PODACI
- x –kordinata i y-kordinatasvi podaci su realni brojevi.
- METODI
- konstruktor bez pocetnih vrednosti (tacku sa koordinatama (0,0))
- konstruktor sa datom x-kord., y-kord.
- metod za odredjivanje koordinata x ()-> (int )
y ()-> (int )
- metod za odredjivanje rastojanja izmedju dve tacke(d 2=(x1+x2)
2+(y1+y2)
2)
rastojanje(Tacka t)-> (double)
- metod za odredjivanje rastojanja od centra .(d 2=x
2+y
2)
do_centra() -> (double)
(b) Formirati podklasu Imenovana_tacka koja sadrzi dodatno-PODACI
- ime tipa string
predefinisati:
- konstruktor bez pocetnih vrednosti(ime=”tacka”)
- konstruktor sa zadatim vrednostima(x,y,ime)
- metodu za ispisivanje imena tacke na standarni izlaz zovem_se()->string
(c) Formirati podklasu Tacka3D koja sadrzi dodatno-PODACI
- z-koordinata
predefinisati:
-konstruktor bez pocetnih vrednosti (z=0)
-konstruktor sa zadatim vrednostima(x,y,z)
-metodu za odredjivane rastojanja od centra(d 2=x
2+y
2+z
2)
(d) Napisati klasu test koja ce biti izvrsna i u njoj:
-formirati tacke A(1,2) i B(3,9)
-formirati tacku D(12,12,moja_tacka) i E()
-formirati C tacku (1,2,3)-Na standardni izlaz ispisati: -rastojanje AB
-rastojanje A do koordinatnog pocetka
-rastojanje A do koordinatnog pocetka
-kordinate tacke C
- “A projekcija C” ako su im x i y koordinate iste
-ispisati ime za E I D koriteci metodu zovem_se
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 14/27
Objektno programiranje –JAVA-ZADACI
14
4. (a) Formirati klasu SemaforRG sa sledecim podacima:
-crveno
-zeleno
svi podaci su (int).
- METODI
- konstruktor bez pocetnih vrednosti (crveno=0 I zeleno=1)
- konstruktor sa datim vrednostima
- metod za odredjivanje crvenog I zelenog svetla:
int Crveno();int Zeleno();
- metod za odredjivanje koje je svetlo aktivno:
int Aktivno();-metod za promenu boje na semaforu:
void Promeni_boju();-metod za ispis koje je svetlo ukljuceno:
void Ispisi();-metod za odredjivanje da li je stanje semafora ispravno:
String Ispravan ();
(b) Formirati podklasu SemaforRGY koja sadrzi dodatne podatke
-zuto
Podatak je (int).
predefinisati:
-konstruktor bez pocetnih vrednosti(zuto=0)
-konstruktor sa zadatim vrednostima(crveno,zeleno,zuto)
-metod za ispis koje je svetlo ukljuceno:
Ispisi_zuto();*metoda koja proverava da li je ukljuceno zuto svetlo
(d) Napisati klasu test koja ce biti izvrsna I u njoj:
Formirati objekte(instance):-formirati s1 semafor sa vrednostima(1,1)
-formirati s2 semafor sa vrednostima(0,1)
-formirati s3 semafor sa vrednostima(0,0,1)
Na standardni izlaz ispisati:-Vrednosti crvenog i zelenog svetla za semafor s1
-Koje je svetlo aktivno za semafor s2
-Ispravnost semafora s2
-Promeniti boju za semafor s1
-Ispisi za semafor s3 koje je svetlo aktivno,takodje i za s1.
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 15/27
Objektno programiranje –JAVA-ZADACI
15
5. (a) Formirati klasu Student sa sledecim podacima:
Ime,
Prezime,
JMBG,
Broj_indexa,Godina_studija,
Smer,
Odsek, Fakultet svi podaci su String,osim Godina_studija.
- METODI
- konstruktor bez pocetnih vrednosti (*inicijalne vrednosti vasi podaci)
- konstruktor sa datim vrednostima
- metod za odredjivanje koji Fakultet studira odredjeni student:
- metod za odredjivanje koji je student brucos: -metod za promenu godine za odredjenog studenta(g+1)
-metod za ispis koji je student na Odseku “Pedagogija”
-metod za ispis kompletnih podataka o studentu
(b) Formirati podklasu Student_Informatika koja sadrzi dodatne podatke
Prosek, Podatak je double.
predefinisati:
-konstruktor bez pocetnih vrednosti(Prosek=9.20)
-konstruktor sa zadatim vrednostima()
-metod za ispis podataka o studentu ciji je prosek iznad 9
(d) Napisati klasu test koja ce biti izvrsna I u njoj:
Formirati objekte(instance):-formirati s1 student sa podacima:
(Esad,Medjedovic,5643217895463,274/05,1,inzenjer,IT,FIIT)
-formirati s2 student sa podacima:
(Emina,Rastoder,4357892315673,887/04,4,vaspitac,pedagogija,Humanisticke_nauke)
-formirati s3 student sa podacima:
(Adin,Ljajic,2345367543786,274/05,3,9.45)
Na standardni izlaz ispisati:-podatke za studenta s1 I s2
-ispistati da li je student s2 na odseku Pedagogija
-ispistati da li je student s1 brucos
-proveriti da li student s3 zadovoljava uslov-prosek iznad 9
-Proveriti koji Fakultet studira s2
-Povecati godinu za s1
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 16/27
Objektno programiranje –JAVA-ZADACI
16
6. (a) Formirati klasu Vozilo koja omogucava rad sa pravouganicima
-PODACI
p-potrosnja po predjenim kilometrima (ceo broj)v-prosecna brzina (ceo broj) gorivo-vrsta goriva(“benzin”, “nafta”) (string) (3 poena)
- METODI
- konstruktor bez argumenata (postavlja p=10 , v=100 i gorivo=”nafta”)
(3 poena)
- konstruktor sa datim vrednostima p-potrosnja,v-pr.brzina ,gorivo (3
poena)
- metode za odredjivanje potrosnje i brzine potrosnja()->(int)
brzina()-> (int )
(4 poena)- metod za odredjivanje koliko je goriva potrebno za n kolometara (n*p)
potrebno_goriva(int n)->
(int)
(4 poena)
- metod za ispisivanje podataka o vozilu(“Prosecna brzina 100 km/h, potrosnja 10 l/km
gorivo: nafta”)
podaci()->(void)
(4 poena)
(b) Formirati klasu Dizel koja nasledjuje Vozilo a vrsta goriva mu je uvek nafta
predefinisati:
- konstruktor bez argumenata() (3 poena)- konstruktor sa zadatim vrednostima(p,v) (3 poena)
- metodu za odredjivanje koje je vozilo bolje
(0 ako je bolje vozilo na kome pozivamo metodu od onoga sa kojim se uporedjuje,inace 1.
Bolje je ono koje je brze a ako su im brzine iste onda ono koje ima manju potrosnju ).
bolje(Dizel vozilo)->(int)
(4 poena)
-metodu za izracunavanje koliko je potrebno vremena za n kilometara voznje(n/v)
potrebno_vremena(double n)-
>double
(4 poena)
(c) Napisati klasu test koja ce biti izvrsna i u njoj:-formirati vozila v1(), v2(13,110,”benzin”)
-formirati dizel vozila d1(), d2(7,90)
- Na standardni izlaz ispisati:- podatke o vozilu v1 koristeci metode
potrosnja() i brzina()
- koliko v2 potrosi goriva za 30km puta
- koliko je potrebno vremena vozilu d1 za 50km
- podatke o v2 pomocu metode podaci()
-koje je vozilo bolje d1 ili d2
(15 poena)
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 17/27
Objektno programiranje –JAVA-ZADACI
17
-ZADACI-APLETI-
1.Napisati applet koji:
- iscrtava string sa Stringom “APLET” od kordinate (175,50) i
postavlja oko njega zaobljen pravougaonik
- iscrtava tri ispunjena kruga iz gornjeg levog ugla sa kordinatama
i poluprecnikom:
- (100,100), r=70
- (230,100), r=70- (190,190), r=20
- postavlja boju na crvenu
- iscrtava ne ispunjen krug od koordinate (120,120) precnika
r=150
- postavlja boju na plavu
- iscrtava polygon kroz temena:
A1 =(100, 20) A2 =(300, 20) A3 =(350, 170)
A4 =(300, 300)A5 =(100, 300) A6 =( 50, 170)
2.Napisati applet koji kreira form sa border postavkom i postavlja
dugmat:
gore,dole,levo desno na odgovarajuce strane.
U centralnoj celiji postavlja panel sa mreznom postavkom sa 3-
reda i 2-kolone, i 10 piksela razmakom izmedju komponenata koji
sadrzi :
- labelu nadimak i tekst polje za njegov unos nadimak - labelu sifra i tekst polje za unos
- dva checkbox-a DA i NE koja su grupisana
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 18/27
Objektno programiranje –JAVA-ZADACI
18
3.Napisati applet koji:
- iscrtava string “APLET” od kordinate (185,75) i postavlja oko
njegazaobljen pravougaonik
- iscrtava tri ispunjena koncentricna kruga kruga
- (100,100), r=70,plav
- r=50,beo
- r=20,crven
- iscrtava ne ispunjen kvadrat plave boje od koordinate (80,80)
stranice a=150
- postavlja boju na crnu- iscrtava polygon kroz temena:
A1 =(100, 20) A2 =(300, 20) A3 =(350, 170)
A4 =(300, 300)A5 =(100, 300) A6 =( 50, 170)
4.Napisati applet koji kreira form sa mreznom sa 4 redova i 3
kolone postavkom i postavlja :
labele: ime,prezime, sifra u prvom redu, zatim;polja za unos imena ,prezimena i sifre(zasticeno) u drugom
redu;
panel1,panel2,panel3 u trecem redu
( postaviti border postavku za panel2 I u njemu cetiri checkbox-a
S,N,W.E koja su grupisana)
dumice levo ,centar,desno u cetvrtom redu.
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 19/27
Objektno programiranje –JAVA-ZADACI
19
-ActionPerformed (ActionEvent e) -
5.Kreirati tri buttona(crveno,plavo,zuto),i jednu tekst
labelu,
sa sledecim pozicijama ("Promeni boju!!", 50, 60 ).
-Postaviti mrezu sa sledecim podacima
GridLayout(3,1,10,20).
-Postaviti glavni panel na kome se nalazi mreza.
-Koristeci ActionPerformed,dodati funkcionalnost
buttonima:
-klikom na dugme “crveno”,tekst labela treba da
bude crvene boje I tako za naredna dva dugmeta.
6.Primer grafickog prikaza kompasa.-Kreirati cetiri butona:sever,jug,istok,zapad.
-postaviti mreznu postavku BorderLayout.-kreirati jedan ispunjen krug sa podacima
(200,100,100,100)
-kreirati jedan pravougaonik cija ce pozicija varirati u
zavisnosti od klika na jedan od butona(npr.klik na
sever,pravougaonik je okrenut ka severu itd.):
(istok)- (250,150,50,10)
(zapad)- (200,150,50,10)(jug)- (250,150,10,50)
(sever)- (250,100,10,50).
-Pomocu ActionPerformed (ActionEvent e),dodeliti
funkcionalnost butonima,tako da klikom na jedan od 4
butona postavlja pravougaonik na zadatu poziciju.
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 20/27
Objektno programiranje –JAVA-ZADACI
20
7.Napisati applet koji kreira form border postavkom:na severu postavlja : panel1 koji ima 3 kolone jedan red i u svakoj po
jedno dugme:Bold,Italic i brisi u centralno polje postavljamo: panel2 sa
2 reda jednom kolonom.
U prvom redu je deo koji ispisuje tekst po vasoj zelji i podvlaci ga
pravougaonikom plave boje.
U drugom redu je tekstualno polje koje ispisuje koje je dugme
pritisnuto:
Postaviti akcije za
dumice:1) bold i italic menjaju
stil ispisivanja teksta u
kanvasu2) brisi , brise tekst sa
kanvasa
Sva tri dugmeta menjaju
tekst u tektuaolnom
polju.Pocetni tekst je:
“Jos nema promene” a
pritiskom nekog od ovih dugmica ispisuje se koje je dugme pritisnutonpr.“Pritisnuto je dugme bold”.
8. Napisati applet koji crta medu od sledecih kruzica:1) usi: neispunjeni krugovi poluprecnika 10 sa centrom O1(20,20) i
O2(100,20),Boja:Siva2)glava: ispunjen krug koji je upisan u kvadrat sa gornjim levim uglom
(20,20) i stranicom 80,Boja:Siva
3)telo: a) mrsavo elipsa upisana u pravougaonik (20,100) stranica
80,120b)debelo (0,100) 120,120,Boja:Siva
4)Oci :Krugovi sa centrima(50,50) i (70,50) poluprecnika 5
Boju ociju definisati kao novu boju c i menjati tipki B- “plave oci
”,G-”zelene oci”,Y-“zute oci”.Ako se misem kliskne u pravougaonik u
koji je upisano debelo telo telo se menja(ako je bilo debelo postaje
mrsavo i obrnuto)
(podrazumevane vrednosti su plavoki buca)
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 21/27
Objektno programiranje –JAVA-ZADACI
21
-Import SWING / extends Jframe -9.Napisati program “Datum”:
-importovati paket Swing
-klasa nasledjuje Jframe
Program prikazuje Datum sa dva padajuca menija:
-za mesec
-za godinu
10. Napisati program “Prijava”:-importovati paket Swing
-klasa nasledjuje Jframe
Program prikazuje Prozor Prijava koja sadrzi polja za unos:
-korisnickog imena-lozinke
-komentara
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 22/27
Objektno programiranje –JAVA-ZADACI
22
11. Jframe / Applet
Kreirati program za prikaz tri buttona na panelu:
(abort); (retry);(fail);
import java.awt.*;
public class ButtonApplet extends java.applet.Applet {
Button abort = new Button("Abort");
Button retry = new Button("Retry");
Button fail = new Button("Fail");
public void init() {
add(abort);
add(retry);
add(fail);
}}
import javax.swing.*;
public class Buttons extends JFrame {
JButton abort = new JButton("Abort");
JButton retry = new JButton("Retry");
JButton fail = new JButton("Fail");
public Buttons() {
super("Buttons");
setSize(80, 140);
JPanel pane = new JPanel();
pane.add(abort);
pane.add(retry);
pane.add(fail);
setContentPane(pane);}
public static void main(String[] arguments) {
Buttons rb = new Buttons();
rb.show(); }}
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 23/27
Objektno programiranje –JAVA-ZADACI
23
12.Izrada interfejsa-Toolbar
import java.awt.*;import java.awt.event.*;
import javax.swing.*;
public class ToolBar extends JFrame {
public ToolBar() {
super("ToolBar");
ImageIcon image1 = new ImageIcon("button1.gif");JButton button1 = new JButton(image1);
ImageIcon image2 = new ImageIcon("button2.gif");JButton button2 = new JButton(image2);
ImageIcon image3 = new ImageIcon("button3.gif");
JButton button3 = new JButton(image3);
JToolBar bar = new JToolBar();
bar.add(button1);
bar.add(button2);
bar.add(button3);
JTextArea edit = new JTextArea(8,40);
JScrollPane scroll = new JScrollPane(edit);
JPanel pane = new JPanel();BorderLayout bord = new BorderLayout();
pane.setLayout(bord);pane.add("North", bar);
pane.add("Center", scroll);
setContentPane(pane); }
public static void main(String[] arguments) {
ToolBar frame = new ToolBar();
frame.pack();frame.setVisible(true);
}}
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 24/27
Objektno programiranje –JAVA-ZADACI
24
13-izrada programa za zbir dva broja
import java.awt.*;import javax.swing.*;
import java.awt.event.*;
public class AddTwo extends JFrame implements ActionListener {
JTextField one = new JTextField("0", 5);
JLabel plus = new JLabel("+");
JTextField two = new JTextField("0", 5);
JButton equals = new JButton("=");JTextField result = new JTextField("0", 5);
public AddTwo() {
super("Add Two Numbers");
setSize(400, 60);
Container pane = getContentPane();
FlowLayout flow = new FlowLayout();
pane.setLayout(flow);equals.addActionListener(this);
pane.add(one);
pane.add(plus);
pane.add(two);
pane.add(equals);
pane.add(result);
setContentPane(pane);
setVisible(true);}public static void main(String[] arguments) {
AddTwo frame = new AddTwo();
}
public void actionPerformed(ActionEvent evt) {
try {
int value1 = Integer.parseInt(one.getText());
int value2 = Integer.parseInt(two.getText());result.setText("" + (value1 + value2));
} catch (NumberFormatException exc) {} }}
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 25/27
Objektno programiranje –JAVA-ZADACI
25
14.Napisati aplet za rad sa grafickim komponentama koji: Kreira 4 panela:
Panel dugmici,Panel radio,Panel tekst,Panel p1 Zatim kreira 4 mreze:GridLayout gl=new GridLayout(3,2);
GridLayout gl1=new GridLayout(4,1);
GridLayout glavna=new GridLayout(1,3);
BorderLayout bl=new BorderLayout();
Kreira sledece butone:Buton d1,d2.
Zatim 4 radio butona I 4 checkboxa.Kreira 4 tekst polja (t1,t2,t3,t4) I dve tekst labele(l1,l2).
*za polje t1 onemoguciti unos,a za polje t4 postaviti skrivene karaktere.
*zatim prebaciti tekst iz polja t4 u polje t2*postaviti tekst labeli l1 “labela 1”
*aktivirati treci check box
Rasporediti kreirane elemente na panelu kao na slici:
1.najpre postaviti mreznu postavku glavna
2.panelu Radio dodeliti mreznu postavku bl
3.panelu Tekst dodeliti mreznu postavku gl
4.panelu P1 dodeliti mreznu postavku gl1
5. panelu Dugmici dodeliti butone
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 26/27
Objektno programiranje –JAVA-ZADACI
26
Java-grafika
1. Napisati program koji prikazuje panel i izborom dve tačke crta krug ciji je precnik
data duz.(Prvo teme je fiksno)
Dati tipkama sledeće uloge:
P-popunjava krug kada u se kursor nalazi u njemu
U-omogucava da se vratimo jedan korak u nazadK-crta pravougaonik kome je data duz dijagonala
w,W-omugucava clipping area mehanizam za oblik zone uzima zadnju nacrtanu figuru
A-postavlja belu boju za prvu boju GradientPaint metodeB- postavlja belu sivu za prvu boju GradientPaint metode
C- postavlja belu crnu za prvu boju GradientPaint metode
X- postavlja belu žutu za drugu boju GradientPaint metode
Y- postavlja belu zelena za drugu boju GradientPaint metode
Z- postavlja belu plava za drugu boju GradientPaint metode
1-povećava verličinu kojom se icrtava linija za 5
3-smanjuje verličinu kojom se icrtava linija na 5
2-pomera kordinate prve tačke pravougaonika za -5 po y-osi8-pomera kordinate prve tačke pravougaonika za +5 po y-osi
4-pomera kordinate prve tačke pravougaonika za -5 po x-osi
6-pomera kordinate prve tačke pravougaonika za +5 po x-osi
2. Napisati program koji prikazuje panel i :
1) izborom prve dve tačke crta pravu2) omoguciti da klikom na dugme ‘o’ se iscrtava krug od prve dve tacke
3) zatim svakim sledećim izborom tačke crta trougao sacinjen od prve dve I zadnje tacke
4) na kraju izborom cetvrte tacke crta pravougaonik.
Dati tipkama sledeće uloge:
5) P-popunjava figuru ako nije popunja i iscrtava samo okvir ako je popunjena
6) U-omogucava povratak prethodnog dogadjaja7) K-pretvara pravouganik u krivu III-reda
8) ispisuje da li se nalazimo u touglu ili ne ( tekstualni ispis )
9) prilikom prelaska preko figure,figura postaje popunjena
10) postaviti gradijent -boja1 na ‚R’(red) -boja2 na ‚B’(blue)
5/16/2018 Objektno Programiranje Skripta Stud - slidepdf.com
http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 27/27
Objektno programiranje –JAVA-ZADACI
27
11) Dugme ‘+’ *povećava verličinu kojom se icrtava linija za 5
Dugme ‘-‘ *smanjuje verličinu kojom se icrtava linija na 5
12) 2-pomera kordinate prve tačke pravougaonika za -5 po y-osi
8-pomera kordinate prve tačke pravougaonika za +5 po y-osi
4-pomera kordinate prve tačke pravougaonika za -5 po x-osi
6-pomera kordinate prve tačke pravougaonika za +5 po x-osi
3. Napisati program koji prikazuje panel i izborom prve dve tačke crta pravu a zatim
svakim sledećim izborom tačke crta trougao sacinjen od prve dve izabrane tacke I zadnje
izabrane tacke
Dati tipkama sledeće uloge:
P-popunjava figuru ako nije popunja i iscrtava samo okvir ako je popunjena
R-briše sve sa ekrana i omugućava nam da napravimo novu sliku nezavisnu od prethodne
K-pretvara trougao u krivu II-reda
O-ispisuje da li se nalazimo u touglu ili ne
A-postavlja belu boju za prvu boju GradientPaint metode
B- postavlja belu sivu za prvu boju GradientPaint metode
C- postavlja belu crnu za prvu boju GradientPaint metode
X- postavlja belu žutu za drugu boju GradientPaint metode
Y- postavlja belu zelena za drugu boju GradientPaint metodeZ- postavlja belu plava za drugu boju GradientPaint metode
1-povećava verličinu kojom se icrtava linija za 5
3-smanjuje verličinu kojom se icrtava linija na 5
2-pomera kordinate prve tačke pravougaonika za -5 po y-osi
8-pomera kordinate prve tačke pravougaonika za +5 po y-osi
4-pomera kordinate prve tačke pravougaonika za -5 po x-osi
6-pomera kordinate prve tačke pravougaonika za +5 po x-osi