Kako omoguciti korisniku da unosi podatke u program?

Da bi korisnik uneo podatak u program korisniku treba programski izbaciti dijalog sa poljem
za unos podatka kao na slici ispod




Osnove programiranja u Javi

Kada korisnik dobije ovakav dijalog u polje za tekst treba da unese ono što se od njega traži, ili
tekst ili broj. Kada završi unos treba da klikne „OK“ dugme da da signal da je završio sa unosom.
Tada se tekst ili broj, koji je napisao na dijalogu, unosi u memoriju koju koristi program(uneo je
podatak u program). Da bi se napisao kod za iscrtavanje ovakvog dijaloga i reagovanje na klik

dugmeta, potrebno bi bilo dosta linija koda. Medutim, kao što je vec receno prilikom instalacije
java SDK, instalirano je mnoštvo vec napravljenih klasa(API) koje se mogu koristiti u bilo kom
novo pisanom programu. Sadržaj tih klasa su atributi i metode(funkcije) koje su napravljene da

nešto rade. Tako da vec postoji napravljena funkcija koja ce prikazan dijalog iscrtati i zove se
„showInputDialog“, a može se naci u klasi JoptionPane.

Da bi u tekucem programu mogla da se koristi ova klasa mora da se uveze(import-uje) u program
korišcenjem naredbe import. Da podsetimo, neke klase nije potrebno eksplicitnom naredbom
importovati, nego se jednostavno mogu odmah koristiti, kao što je slucaj sa klasom System.


Na slici je prikazana naredba import. Posle službene reci import dolazi naziv klase koju
importujemo ali sa celokupnom putanjom. S obzirom da API(biblioteka klasa) ima veliki broj klasa
one su smeštene u pakete(packages) i potpakete. Dakle, puna putanja znaci da se prvo krene od
paketa gde se klasa nalazi. U ovom slucaju to je paket javax, pa stavite tacku koja vam otvara
ovaj paket i prikaže listu podpaketa. Treba odabrati potpaket swing. Tackom posle swing
otvarate taj paket i tamo se može naci klasa JoptionPane koja je potrebna u ovom slucaju.

Unos tekstualnog podatka

Kod unosa tekstualnog podatka prvo treba rezervisati memoriju za takav podatak. To je podatak
tipa String pa naredba za rezervaciju memorije glasi:

String s;

Kada bi bilo potrebno samo programski zadati tekst(ne i da ga korisnik unese) onda bi to bilo

uradeno sledecom naredbom:

s = „Ovo je neki tekst“; // tekst se daje pod znacima navoda

Kada želimo da korisnik unese tekst treba sa desne strane znaka „=“ pozvati funkciju koja
prikazuje dijalog za unos, saceka da korisnik u polje za tekst unese tekst koji želi, i vrati taj tekst
na kraju svog izvršavanja.

s = JOptionPane.showInputDialog(„Unesi tekst“);




Kao rezultat poziva funkcije na kraju ce se vratiti tekst ali ne onaj koji je programer napisao nego
koji je napisao korisnik na prikazanom dijalogu. Naravno i prikaz dijaloga i pisanje teksta na
dijalogu ce se ostvariti tek kada se bude pokrenuo napisani program(u trnutku izvršavanja).

Kada se poziva metoda koja se nalazi u nekoj importovanoj klasi mora se prvo napisati naziv te
klase(JOptionPane), zatim staviti operator „tacka“ koji otvara klasu i tek onda tamo pronaci
funkciju koja je potrebna(showInputDialog). Ovoj funkciji treba proslediti tekst koji ce biti

prikazan na Input dijalogu(„Unesi tekst“).

Operator „=“ smešta vraceni tekst u memoriju s;

Na kraju ostaje da se unešen tekst ispiše na ekranu. Naredba za to je:

System.out.println(s);

Ovde se umesto metode print poziva metoda println koja radi isto što i print i na kraju doda nov
red. Ceo kod je dat na slici ispod.





Unos celobrojnog podatka

Kod unosa celobrojnog podatka postoje neke razlike. Ako bi istu logiku primenili kao i kod unosa
tekstualnog podatka prve dve naredbe bi izgledale:


Ali vidimo da je prijavljena greška. Uzrok ove greške proizilazi iz cinjenice da sa leve i desne
strane znaka „=“ moraju biti isti tipovi podataka. Ovde nisu, jer metoda showInputDialog vraca
String(tekst) a podatak a je deklarisan kao int (ceo broj). Ovaj problem se prevazilazi tako što se
uvede pomocna promenljiva tipa String koja ce prihvatiti privremeno vrednost koju je vratila
metoda showInputDialog. To ce biti neki broj koji je korisnik programa želeo da unese. Npr. ako
je korisnik upisao 7, metoda je vratila vrednost „7“ tj. broj, ali kao tekst(String). Ovu pomocnu
promenljivu nazvacemo aStr.


Mi smo dobili aStr, ali nama treba a kao int a ne kao String. Ostaje sada da se broj iz aStr
prevede u int i prebaci u memoriju a. Ovo ce da odradi metoda koja se nalazi u klasi Integer i
zove se parseInt.


Ostaje da se dobijeni broj prikaže na ekranu





Sada se vidi ceo kod i posle izvršavanja, u Output-u ce biti prikazan celobrojni podatak tj. bice
ispisano „a=7“.




Unos realnog podatka

Kod unosa realnog podatka koji se može deklarisati ili kao float ili kao double postoje neke male
razlike. Metode za pretvaranje iz tekstualnog u realan oblik bi se zvale parseFloat tj. parseDouble,
a klase gde se nalaze te metode su Float za tip float , odnosno Double za tip double (vidi rešenje
ispod).


Chapter 3 Primer zadatka sa podacima 2:

Tekst zadatka: Napisati program koji pomaže kasirki da obracuna kusur, tako što treba u
program uneti jedinicnu cenu artikla, kolicinu artikla i novac dobijen od kupca

Kao i u prethodnom primeru postupak rešavanja zadatka može se generalno podeliti u cetiri
faze. U prvoj fazi treba rezervisati prostor za sve podatke koji se pojavljuju u programu. Prilikom
rezervisanja memorije moramo nekako nazvati te podatke(dati im ime) i opisati ih koristeci neku
od službenih reci: int, double, String, boolean itd. Koji su dati u tabeli.

U ovom primeru iz teksta zadatka treba videti koji su to sve podaci(i ulazni i izlazni) koji ce
se koristiti. To su: jedinicna cena, kolicina, novac koji kupac predaje na kasu i ono što nama
program na osnovu toga treba da izracuna, a to je kusur. Sada cemo imena promenljivih
podataka davati u više reci i pri tom koristeci skracenice:

double jedCena; //jedinicna cena

double kolArt; //kolicina artikla

12 /15



Osnove programiranja u Javi

double novac; //novac koji kupac daje na kasi
double kusur; //kusur koji predstavlja izlazni podatak


U drugoj fazi se unose ulazni podaci. Sada pošto znamo kako se unose realni podaci,
omogucicemo korisniku da unese, prvo jedinicnu cenu. Uvešcemo i pomocni podatak tipa String:
String jedCenaStr;
jedCenaStr= JOptionPane.showInputDialog(“ Unesi jedinicnu cenu artikla”);
jedCena=Double.parseDouble(jedCenaStr);
Ovo isto treba da se uradi i za ostale ulazne podatke:


U trecoj fazi treba izracunati izlazni podatak(kusur) i u cetvrtoj isti prikazati na ekranu.

Ceo zadatak je prikazan ispod:

13 /15



Osnove programiranja u Javi


Vidimo iz ovog primera da se kusur racuna tako što od novca koji je kupac dao prodavcu
oduzmemo stvarni trošak (kolicina * jedinicna cena).



Osnove programiranja u Javi

Chapter 4 Primeri za samostalan rad:

Primer za samostalan rad 1:

Za unetu vrednost poluprecnika kruga izracunati površinu kruga i sve podatke prikazati na ekranu

Primer za samostalan rad 2:

Napisati program kojim se obracunavaju troskovi putovanja do mora i nazad ako je S udaljenost
do mora, potrosnja automobila na 100km L litara, a cena 1litra goriva C dinara


Poslednja izmena: Saturday, 17. March 2012., 14:07