27
5/16/2018 ObjektnoProgramiranjeSkriptaStud-slidepdf.com http://slidepdf.com/reader/full/objektno-programiranje-skripta-stud 1/27 Objektno programiranje –JAVA-ZADACI 1 OBJEKTNO PROGRAMIRANJE SKRIPTA ZA VEZBE Asistent: Saracevic Muzafer 

Objektno Programiranje Skripta Stud

Embed Size (px)

Citation preview

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