-
1
Primenjeno programiranje - Vebe
Java i NetBeans IDE 7.0
Kreiranje novog projekta
1. Pokrenite NetBeans IDE. 2. Odaberite opciju File > New
Project (Ctrl-Shift-N), kao na slici.
3. U dijalogu New Project wizard, otvorite kategoriju Java i
odaberite Java Application i pritisnite Next
4. Na stranici Name and Location uradite kao na slici: a. U
polje Project Name unesite HelloWorldApp. b. Ostavite Use Dedicated
Folder for Storing Libraries ekboks neselektovan. c. U polje Create
Main Class unesite helloworldapp.HelloWorldApp. d. Selektujte Set
as Main Project. e. Kliknite Finish
-
2
5. Nakon toga projekat je kreiran i otvoren. Prozor NetBens IDE
bi trebao da prikazuje sledee komponente:
a. Listu projekata u prozoru Projects, koji sadri stablo svih
komponenti projekta, kao to su fajlovi sa kodom, biblioteke koje se
koriste
b. Editor koda - Source Editor sa otvorenim fajlom pod nazivom
HelloWorldApp. c. Prozor za navigaciju - Navigator, za brzu
navigaciju izmeu elemenata selektovane klase d. Lista sa
rezultatima - Tasks, koji lista greke prilikom kompajliranja i
druge komentare. (ako se
prikazuje mogue je odabrati sa Window>Tasks)
-
3
6. Poto smo ekirali prethodno opciju Create Main Class, IDE je
kreirao main klasu umesto nas. Na mesto komenatara:
// TODO code application logic here
7. Mogue je uneti proizvoljan kod, na primer:
System.out.println("Hello World!");
8. Izmene se uvaju sa opcijom File > Save. 9. IDE ima opciju:
Compile on Save, te nije potrebno izriito kompajlirati projekat da
bi se pokrenuo. 10. Za pokretanje programa treba odabrati opciju:
Run > Run Main Project (F6). 11. Ako program ne sadri greke
rezultat izvoenja ovog programa se prikazuje:
Osnovni elementi Java Programa
Zadatak 1. Napisati program koji ispisuje pozdravnu poruku na
sistemski izlaz
class HelloWorldApp { public static void main(String[] args) {
// ispis stringa. System.out.println("Hello World!"); } }
Zadatak 2. Napisati program koji tampa istinitosnu vrednost
izraza: 2 + 2 = 4
public class Demo { public static void main (String[] arg) {
boolean b; b = (2 + 2 == 4); System.out.println(b);
} }
Zadatak 3. Napisati program koji ispisuje trenutni datum i
vreme
import java.util.*;
public class HelloDate { public static void main(String[] args)
{ System.out.println(Pozdrav, sad je: "); System.out.println(new
Date()); } }
-
4
Naredba dodele
Zadatak 4: Napisati program koji definie dve promenjive
celobrojnog tipa pod imenom prva i druga, i tri
promenjive tipa realnih brojeva sa imenima x, y i z, i jednu
promenjivu istina tipa boolean. Promenjivoj prva
dodeliti vrednost 6, promenjivoj druga dodeliti vrednost 32,
promenjivoj y dodeliti vrednost 34.15.
package zadatak1;
public class Zadatak1 {
public static void main(String[] args) {
int prva=6, druga=32;
double x, y=34.15, z;
boolean istina;
}
}
Zadatak 5. Kreirati dve promenjive celobrojnog tipa (broj1 i
broj2), tri promenjive tipa realnih brojeva (real1,
real2 i real3) i dve promenjive tipa boolean (kraj i
uspesnoIzracunavanje). Promenjivima celobrojnog tipa i po
jednoj od promenjivih tipa realnih brojeva i tipa boolean dati
proizvoljne poetne vrednosti.
package zadatak2;
public class Zadatak2 {
public static void main(String[] args) {
int broj1=7, broj2=13;
double real1, real2=13.5, real3;
boolean kraj =true, uspesnoIzracunavanje = false;
}
}
Zadatak 6. Napisati program koji e kreirati dve promenjive
realnog tipa podataka sa imenima osnova i visina, sa vrednostima
5.0 i 7.0, i jednu promenjivu povrsina takoe realnog tipa.
Izraunati povrinu trougla i rezultat smestiti u promenjivu
povrsina. Na kraju tampati poruku o iznosu povrine.
package zadatak2; public class Zadatak2 { public static void
main(String[] args) { double osnova = 5.0, visina = 7.0, povrsina;
povrsina = (osnova*visina)/2.0; System.out.println("Povrsina
trougla je: "+povrsina+"!"); } }
-
5
Zadatak 7. Napisati program u kojem e biti kreirane 7
promenjivih realnog tipa: br1, br2, br3, br4, br5, prosek i suma,
sa proizvoljnim poetnim vrednostima. U promenjivoj prosek smestiti
rezultat izraunavanja srednje vrednosti 5 unetih brojeva a u
promenjivoj suma zbir promenjivih. Rezultate ispisati na sistemski
izlaz.
package zadatak2; public class Zadatak2 { public static void
main(String[] args) { double br1 = 3.2, br2 = 3.5, br3 = 5.6, br4 =
1.7, br5 = 2.3;
double prosek, suma ; suma = br1 + br2 + br3 + br4 + br5; prosek
= suma/5;
System.out.println("Suma brojeva je: " + suma);
System.out.println("Prosek brojeva je: " + prosek);
} }
Zadatak 8. Napisati program u kojem se uz pomo dve promenjive
tipa double izvrava konverzija vrednosti duine izraene u
kilometrima u duinu izreaenu u miljama, i obrnuto.
public class KonverzijaDaljina {
public static void main(String[] args) {
double duzinaMilje; // vrednost duzine u miljama double
duzinaKilometri; // vrednost duzine u kilometrima
// konverzija 5 km u milje i stampanje rezultata
duzinaKilometri = 5.0; duzinaMilje = duzinaKilometri * 0.6214;
System.out.println("5 km = " + duzinaMilje + " milja");
// Konverzija 5 milja u kilometre i stampanje rezultata
duzinaMilje = 5.0; duzinaKilometri = duzinaMilje * 1.609;
System.out.println("5 milja = " + duzinaKilometri + " km"); }
}
-
6
Upotreba sistemskog ulaza
Zadatak 9. Napisati program koji e od korisnika traiti da unese
vrednosti stranica pravougaonika i zatim
izraunati i tampati vrednost povrine tog pravougaonika.
package zadatak5; import java.util.Scanner; public class
Zadatak5 {
public static void main(String[] args) { double stranicaA,
stranicaB, povrsina; Scanner ulaz = new Scanner(System.in);
System.out.print("Unwsite stranicu a pravougaonika: "); stranicaA =
ulaz.nextDouble(); System.out.print("Unesite stranicu B
pravougaonika: "); stranicaB = ulaz.nextDouble(); povrsina =
stranicaA * stranicaB; System.out.println("POvrsina pravougaonika
iznosi: "+povrsina); } }
Zadatak 10. Napisati program koji izraunava zbir dva broja koje
unosi korisnik
import java.util.Scanner; // programu je potrebna Scanner klasa
public class AddTwoInts {
public static void main(String[] args) {
int prviBroj; int drugiBroj; int suma;
Scanner consoleIn; consoleIn = new Scanner( System.in );
System.out.print("Unesite prvi broj: "); prviBroj =
consoleIn.nextInt();
System.out.print("Unesite drugi broj: "); drugiBroj =
consoleIn.nextInt();
suma = prviBroj + drugiBroj; System.out.println("Zbir je: " +
suma); } }
-
7
Zadatak 11. Napisati program koji vri izraunavanje obima i
povrine kruga.
import java.util.Scanner; public class Krug {
public static void main (String[] vpar) { double poluprecnik;
double obim, povrsina;
Scanner consoleIn; consoleIn = new Scanner( System.in );
System.out.print("Unesite poluprecnik kruga: "); poluprecnik =
consoleIn.nextDouble();
povrsina = poluprecnik * poluprecnik * Math.PI; obim = 2 *
poluprecnik * Math.PI; System.out.println ("Obim kruga iznosi: " +
obim); System.out.println("Povrsina kruga iznosi: " + povrsina); }
}
IF i SWITCH naredba
Zadatak 12. Napisati program koji trai od korisnika da unese
iznos svoje mesene plate. Ako je plata vea od 75000, program treba
da ispie poruku o bonusu u iznosu od 1000 dinara. Ako je plata nije
vea od 75000, program treba da ispie poruku o bonusu od 2000
dinara
import java.util.Scanner; public class Bonus {
public static void main(String[] args) { double plata;
Scanner consoleIn; consoleIn = new Scanner( System.in );
System.out.print("Unesite iznos Vase plate: "); plata =
consoleIn.nextDouble();
if (plata > 75000){ System.out.println("Vas ovomesecni bonus
iznosi 1000 dinara"); }else{ System.out.println("Vas ovomesecni
bonus iznosi 2000 dinara"); }
}
}
-
8
Zadatak 13. Napisati program koji trai od korisnika da unese dva
broja i kao rezultat ispisuje manji
import java.util.Scanner; public class HelloWorldApp {
public static void main(String[] args) { double prvi, drugi;
Scanner consoleIn = new Scanner( System.in );
System.out.println("Unesite prvi broj: "); prvi =
consoleIn.nextDouble();
System.out.println("Unesite drugi broj: "); drugi =
consoleIn.nextDouble();
if (prvi < drugi){ System.out.println("broj " + prvi + " je
manji"); }else if (drugi < prvi){ System.out.println("broj " +
drugi + " je manji"); }else{ System.out.println("Brojevi su isti");
}
} }
Zadatak 14. Napisati program koji proverava da li je uneti broj
paran ili neparan.
public class IfElse{ public static void main(String[] args){ int
n; Scanner ulaz = new Scanner(System.in); n = ulaz.nextInt(); if (n
% 2 == 0){ System.out.println("Uneti broj je paran."); }else{
System.out.println("Uneti broj je neparan."); } } }
Zadatak 15. Napisati program koji trai od korisnika da unese ime
i godine starosti deteta kao i rezultat testa. Ako je ili broj
godina vee od est ili rezultat testa vei ili jednak od 85, program
treba da ispie poruku da je dete spremno za prvi razred. Inae,
treba ispisati poruku da dete treba da pokusa naredne godine
import java.util.Scanner; public class HelloWorldApp {
public static void main(String[] args) { double rezultat; int
starost; String ime;
Scanner ulaz = new Scanner( System.in );
-
9
System.out.println("Unesite ime deteta: "); ime = ulaz.next();
System.out.println("Unesite starost deteta: "); starost =
ulaz.nextInt(); System.out.println("Unesite broj bodova"); rezultat
= ulaz.nextDouble();
if (starost > 6 || rezultat > 85){ System.out.println(ime
+ " je spreman/na za prvi razred"); }else{ System.out.println(ime +
" treba da saceka narednu godinu"); } } }
Zadatak 16. Napisati program koji uitava tri broja i zatim ih
ispisuje u rastuem rasporedu
import java.util.Scanner; public class Uredi { public static
void main (String[] args) { int a, b, c, pom; System.out.print
("Unesite tri prirodna broja: "); Scanner consoleIn = new
Scanner(System.in); a = consoleIn.nextInt(); b =
consoleIn.nextInt(); c = consoleIn.nextInt(); if (a > b) { pom =
a; a = b; b = pom; } if (a > c) { pom = a; a = c; c = pom; } if
(b > c) { pom = b; b = c; c = pom; } System.out.println
("Uredjeno: " + a + " " + b + " " + c); } }
Ili:
if ( a < b ) { if ( c < a ) System.out.println( c + " " +
a + " " + b); else if ( c > b ) System.out.println( a + " " + b
+ " " + c); else System.out.println( a + " " + c + " " + b); } else
{ if ( c < b ) System.out.println( c + " " + b + " " + a); else
if ( c > a ) System.out.println( b + " " + a + " " + c); else
System.out.println( b + " " + c + " " + a); }
-
10
Zadatak 17. Napisati program koji pronalazi najmanji od tri
uneta prirodna broja
import java.util.Scanner; public class Min { public static void
main (String[] args) { int a, b, c;
System.out.print ("Uneite tri prirodna broja: "); Scanner ulaz =
new Scanner(System.in);
a = ulaz.nextInt(); b = ulaz.nextInt(); c = ulaz.nextInt();
int min = a; if (b < min) min = b; if (c < min) min = c;
System.out.println ("Najmanji je : " + min); } }
Zadatak 18. Napisati program koji od korisnika trai unos dva
realna broja a zatim obavlja operaciju u zavisnosti od izbora
korisnika. Od korisnika se trai izbor jedne od narednih opcija:
zbir, razlika, proizvod, kolinik. Pomo: od korisnika se trai unos
slova: 1 za zbir, 2 za razliku, 3 za proizvod, 4 za kolinik.
Potrebno je koristiti promenjivu tipa int koja e primiti
odgovarajuu vrednost
import java.util.Scanner;
public class HelloWorldApp { public static void main(String[]
args) { double prvi, drugi; int operacija;
Scanner consoleIn; consoleIn = new Scanner( System.in );
System.out.println(Unesite prvi broj: ); prvi =
consoleIn.nextDouble(); System.out.println(Unesite drugi broj: );
drugi = consoleIn.nextDouble(); System.out.println(Unesite
operaciju: ); System.out.println(1 za zbir, 2 za kolicnik, 3 za
razliku, 4 za proizvod); operacija = consoleIn.nextInt();
switch (operacija){ case 1: System.out.println(Zbir iznosi: +
(prvi + drugi)); break; case 2: System.out.println(Kolicnik iznosi:
+ (prvi/drugi)); break; case 3: System.out.println(Razlika iznosi:
+ (prvi-drugi)); break; case 4: System.out.println(Proizvod iznosi:
+ (prvi*drugi));
-
11
break; default: System.out.println(Neispravna operacija!); } }
}
Zadatak 19. Napisati program koji uitava godinu studija studenta
u obliku celog broja i zatim tampa da li je student bruco, student
druge godine, student tree godine ili apsolvent u zavisnosti da li
je unet broj 1, 2, 3 ili 4. ponuditi reenje uz pomo if naredbe kao
i uz switch.
import java.util.Scanner;
public class HelloWorldApp { public static void main(String[]
args) { int godinaStudija;
Scanner consoleIn; consoleIn = new Scanner( System.in );
System.out.println(Koja ste godina studija: ); godinaStudija =
consoleIn.nextInt(); switch (godinaStudija){ case
1:System.out.println(Vi ste Brucos);break; case
2:System.out.println(Vi ste student druge godine);break; case
3:System.out.println(Vi ste student trece godine);break; case
4:System.out.println(Vi ste apsolvent);break;
default:System.out.println(Neispravna godina studija!); } } }
Ili sa ekvivalentnim if:
if (godinaStudija == 1){ System.out.println(Vi ste Brucos);
}else if(godinaStudija == 2){ System.out.println(Vi ste student
druge godine); }else if(godinaStudija == 3){ System.out.println(Vi
ste student trece godine); }else if(godinaStudija == 4){
System.out.println(Vi ste apsolvent); }else{
System.out.println(Neispravna godina studija!); }
-
12
Zadatak 20. Napisati program koji u zavisnosti od rednog broja
meseca u godini ispisuje njegov naziv
public class SwitchPrimer { public static void main(String[]
args) {
int month = 8; String monthString; switch (month) { case 1:
monthString = "Januar"; break; case 2: monthString = "Februar";
break; case 3: monthString = "Mart"; break; case 4: monthString =
"April"; break; case 5: monthString = "Maj"; break; case 6:
monthString = "Jun"; break; case 7: monthString = "Jul"; break;
case 8: monthString = "August"; break; case 9: monthString =
"Septembar"; break; case 10: monthString = "Octobar"; break; case
11: monthString = "Novembar"; break; case 12: monthString =
"Decembar"; break; default: monthString = "Neodgovarajuci mesec";
break; } System.out.println(monthString); } } Isti zadatak uz pomo
if naredbe:
int month = 8; if (month == 1) { System.out.println("Januar"); }
else if (month == 2) { System.out.println("Februar"); } else if
(month == 3) { System.out.println("Mart"); } else if (month == 4) {
System.out.println("April"); } else if (month == 5) {
System.out.println("Maj"); } else if (month == 6) {
System.out.println("Jun"); } else if (month == 7) {
System.out.println("Jul"); } else if (month == 8) {
System.out.println("Avgust"); } else if (month == 9) {
System.out.println("Septembar"); } else if (month == 10) {
System.out.println("Oktobar"); } else if (month == 11) {
System.out.println("Novembar"); } else if (month == 12) {
System.out.println("Decembar"); } else {
System.out.println(Neodgovarajui mesec); }
... // itd
-
13
Zadatak 21. Napisati program koji na osnovu datuma prikazuje
koliko taj mesec ima dana
class SwitchPrimer2 { public static void main(String[] args)
{
int month = 2; int year = 2000; int numDays = 0;
switch (month) { case 1: case 3: case 5: case 7: case 8: case
10: case 12: numDays = 31; break; case 4: case 6: case 9: case 11:
numDays = 30; break; case 2: if (((year % 4 == 0) && !(year
% 100 == 0)) || (year % 400 == 0)) numDays = 29; else numDays = 28;
break; default: System.out.println("Invalid month."); break; }
System.out.println("Number of Days = "+ numDays); } }
-
14
FOR, WHILE i DO naredbe
Primer 22. Primer for petlje:
class ForDemo { public static void main(String[] args){ for(int
i=1; i
-
15
Zadatak 23. Napisati program koji izraunava sumu 10 brojeva koju
unese korisnik (uz pomo for petlje)
import java.util.Scanner;
public class ForPetljaSuma1 {
public static void main(String[] args) {
System.out.println("Program koji izraunava sumu 10 brojeva");
Scanner ulaz = new Scanner(System.in); double suma = 0.0, temp; for
(int i = 1; i
-
16
int broj; System.out.print("Koliko brojeva elite da unesete: ");
broj = ulaz.nextInt(); for (int i = 1; i
-
17
Zadatak 28. Napisati program koji izraunava sumu:
1 +1
2+1
3+1
4++
1
package zadatak14;
import java.util.Scanner;
public class Zadatak14 {
public static void main(String[] args) {
System.out.println("Program koji izraunava izraz"); Scanner ulaz =
new Scanner(System.in); int n; double izraz=1.0;
System.out.print("Unesite broj n: "); n = ulaz.nextInt(); for (int
i = 2; i
-
18
System.out.print("Unesite broj do kojeg ispisujemo brojeve:"); n
= ulaz.nextInt(); while (i
-
19
Zadatak 33. Napisati program koji izraunava (uz pomo do while)
sumu unetih brojeva. Brojevi se uitavaju
dok korisnik ne unese nulu.
package forpetlja; import java.util.Scanner; public class
ForPetlja {
public static void main(String[] args) {
System.out.println("Suma brojeva uz pomo while petlje"); Scanner
ulaz = new Scanner(System.in); double suma, broj;
System.out.println("Unesite brojeve, za kraj unesite nulu!"); do {
System.out.println("Unesite naredni broj: "); broj =
ulaz.nextDouble(); suma = suma + broj; } while (broj != 0);
System.out.println("Suma iznosi: " + suma); } }
Zadatak 34. Napisati program koji izraunava (uz pomo while ili
do while petlje) prosek unetih brojeva. Brojevi
se uitavaju dok korisnik ne unese nulu.
package zadatak16; import java.util.Scanner; public class
Zadatak16 {
public static void main(String[] args) {
System.out.println("Prosek brojeva uz pomo while petlje"); Scanner
ulaz = new Scanner(System.in); double suma, prosek, broj; int
ukupno; // broj unetih brojeva System.out.println("Unesite brojeve,
za kraj unesite nulu!"); System.out.print("Unesite prvi broj: ");
broj = ulaz.nextDouble(); ukupno = 0; suma = broj;
ukupno ++; System.out.print("Unesite naredni broj: "); broj =
ulaz.nextDouble(); suma = suma + broj; } prosek = suma/ukupno;
System.out.println("Prosek iznosi: " + prosek); } }
-
20
Zadatak 35. Napisati program koji izraunava (uz pomo while
petlje) n! za proizvoljni uneti broj n.
package zadatak17;
import java.util.Scanner;
public class Zadatak17 {
public static void main(String[] args) { System.out.println("n!
uz pomo while petlje"); Scanner ulaz = new Scanner(System.in); int
n, faktorijel = 1, i = 2; System.out.println("Unesite broj za koji
izraunavamo faktorijel:"); n = ulaz.nextInt();
while (i
-
21
Zadatak 37. Napisati program koji trai od korisnika da unese 10
brojeva i pronalazi i tampa najvei od njih
import java.util.Scanner;
class NajveciOd10{
public static void main(String[ ] args){ int broj = 0; int
najveci = 0; int brojac= 1;
Scanner consoleIn = new Scanner(System.in);
System.out.println("Unesite prvi broj?");
najveci = consoleIn.nextInt();
while (brojac < 10){
System.out.println("Unesite naredni broj: "); broj =
consoleIn.nextInt(); if (broj > najveci){ najveci = broj; }
brojac = brojac + 1; } System.out.println("Najveci broj je: "+
najveci + "!");}
} }
Reenje sa for petljom:
for (brojac = 2; brojac najveci) najveci = broj;
} System.out.println("Najveci je: "+ najveci + ".");
Zadatak 38. Napisati program u koji ispisuje sve parne brojeve
od 1 do 30
public class parniDo30{
public static void main(String[] args){
System.out.println("parni brojevi od 1 do 30"); for (int i=2; i
-
22
Zadatak 39. Napisati program koji zatrai od korisnika da unese
koliko brojeva eli da sabere, zatim dozvoli njihov unos i na kraju
ispie poruku o njihovoj sumi
import java.util.Scanner;
public class Zbir {
public static void main(String[] args) { int n, temp; long suma
= 0;
Scanner consoleIn = new Scanner(System.in);
System.out.println("Unesite koliko brojeva zelite da saberete: ");
n = consoleIn.nextInt();
for (int i=1; i
-
23
Zadatak 41. Napisati program koji izraunava faktorijel unetog
broja
n!= n*(n-1)*(n-2)*...*3*2*1
import java.util.Scanner; public class Faktorijel { public
static void main (String[] args) { int n; long faktorijel = 1;
Scanner consoleIn = new Scanner(System.in);
System.out.println("Unesite broj za koji izracunavamo faktorijel:
"); n = consoleIn.nextInt();
for (int i=2; i
-
24
} System.out.println ("minimalni element je: " + min); } } }
Zadatak 44. Deklarisati i potom ispisati niz koji e uvati brojeve
od jedan do deset. Koristiti petlju za inicijalizaciju
public class DeklaracijaNiza {
public static void main(String[] args) { int niz[]= new int[10];
for (int i = 0; i < niz.length; i++) { niz[i]=i+1; } for (int i
= 0; i < niz.length; i++) { System.out.println(i+". clan niza
je: " + niz[i]); } }
Zadatak 45. Napisati program koji pronalazi prirodan broj manji
od 10000 koji ima najvie delilaca
public class NajviseDelilaca { public static void main(String[]
args) {
int N; // trenutni broj za koji ispitujemo int maxDivisors; //
trenutni najveci broj delilaca int numWithMax; // broj sa najvecim
brojem delilaca
maxDivisors = 1; numWithMax = 1; for ( N = 2; N
-
25
Metode
Zadatak 46. Napisati program koji uitava visinu i osnovu trougla
i zatim izraunava povrinu trougla uz pomo odgovarajue metode:
package povrsinatrougla; import java.util.Scanner;
public class PovrsinaTrougla {
static double povrsinaTrougla(double a, double h){ return
(a*h)/2; }
public static void main(String[] args) { double osnova, visina,
povrsina; System.out.println("Program koji izracunava povrsinu
trougla!"); Scanner consoleIn = new Scanner(System.in);
System.out.print("Unesite duzinu osnove trougla: "); osnova =
consoleIn.nextDouble(); System.out.print("Unesite visinu trougla:
"); visina = consoleIn.nextDouble(); povrsina =
povrsinaTrougla(osnova, visina); System.out.println("Povrsina
trougla iznosi: " + povrsina); } } Zadatak 47. Napisati program
koji uitava duine stranica pravougaonika i zatim izraunava povrinu
i obim pravougaonika uz pomo metoda:
static double izracunajPovrsinu(double a, double b)
static double izracunajObim(double a, double b)
package pravougaonik; import java.util.Scanner; public class
Pravougaonik {
static double izracunatiPovrsinu(double a, double b){ double p =
a * b; return p; }
static double izracunatiObim(double a, double b){ return 2*a +
2*b; }
public static void main(String[] args) { double a, b;
System.out.println("Program koji izracunava povrsinu i obim
pravougaonik"); Scanner ulaz = new Scanner(System.in);
System.out.print("Unesite stranicu a: "); a = ulaz.nextDouble();
System.out.print("Unesite stranicu b: "); b =
ulaz.nextDouble();
-
26
System.out.println("Povrsina iznosi: " + izracunatiPovrsinu(a,
b)); System.out.println("Obim iznosi: " + izracunatiObim(a, b)); }
}
Zadatak 48. Napisati program koji koristei metod stepen
izracunava stepen unetog broja. Od korisnika traiti i unos broja i
stepena na koji se broj podie.
import java.util.Scanner; public class Stepenovanje {
public static int stepen(int a, int b){ int total = 1; for(int i
= 0; i < b; i++) total = total * a; return total; } public
static void main(String[] args) { int broj, eksponent; Scanner
consoleIn = new Scanner(System.in); System.out.println("Unesite
broj ciji stepen trazite: "); broj = consoleIn.nextInt();
System.out.println("Unesite stepen broja: "); eksponent =
consoleIn.nextInt(); broj = stepen(broj, eksponent);
System.out.println("stepen broja je: " + broj); } }
Zadatak 49. Napisati program koji uz pomo metode int max(int
num1, int num2) prikazuje vei broj od
dva uneta
public class TestirajMaksimum { int max(int num1, int num2) {
int result; if (num1 > num2){ result = num1; }else{ result =
num2;
} return result; }
public static void main(String[] args) {
System.out.println("Program koji ispisuje vei od dva uneta broja");
Scanner ulaz = new Scanner(System.in); System.out.print("Unestite
prvi broj: ");
int i = ulaz.nextInt(); System.out.print("Unestite drugi broj:
");
int j = ulaz.nextInt(); int k = max(i, j);
System.out.println("Veci broj izmedju " + i + " i " + j + " je: " +
k); } }
-
27
Zadatak 50. Napisati program koji ispisuje poruku o oceni na
osnovu unetih bodova (za 51-60 je 6, za 61-70 je
7) U program koristiti metodu: void stampajOcenu(double
bodovi).
public class IspisOcene { public static void main(String[] args)
{ System.out.println("Program koji ispisuje ocenu");
System.out.println("Unestite broj bodova: "); Scanner ulaz = new
Scanner(System.in);
double broj = ulaz.nextDouble(); stampajOcenu(broj);
}
void stampajOcenu(double bodovi) { if (bodovi >90.0) {
System.out.println( Ocena je: 10); } else if (bodovi > 80.0) {
System.out.println(Ocena je: 9); } else if (bodovi >70.0) {
System.out.println(Ocena je: 8); } else if (bodovi > 60.0) {
System.out.println(Ocena je: 7); } else if (bodovi > 50.0) {
System.out.println(Ocena je: 6); } else { System.out.println(Ocena
je: 5); } } }
Zadatak 51. Napisati metod max() koji kao argumente prima dva
integera i vraa vrednost veeg. Koristei overloading definisati
metod max() koji ima za argumente dva broja tipa float i kao
rezultat vraa vrednost tipa float.
public class Maksimumi {
static float max(float a, float b){ if (a>b) { return a; }
else{ return b; } } static int max(int a, int b){ if (a>b) {
return a; } else{ return b; } } }
-
28
Zadatak 52. Napisati program koji ispisuje prvih n lanova
fibonaijevog niza, n unosi korisnik.
2,1, 2121 ==+= == fffff nnn , tj. 1,2,3,5,8,13,21, 34,55,...
import java.util.Scanner; public class Fibonacci{ public static int
fib(int n) { int f1=1, f2=2, temp=0; if (n==1){ return 1; }else if
(n==2){ return 2; }else { for(int i=3; i
-
29
System.out.println("Povrsina iznosi: " + povrsina); } }
Primer 54. Program koji ispisuje (uz pomo metode) koji je uneti
mesec po redu u godini
public class StringSwitchDemo {
public static int getMonthNumber(String month) {
int monthNumber = 0;
if (month == null) { return monthNumber; }
switch (month.toLowerCase()) { case "january": monthNumber = 1;
break; case "february": monthNumber = 2; break; case "march":
monthNumber = 3; break; case "april": monthNumber = 4; break; case
"may": monthNumber = 5; break; case "june": monthNumber = 6; break;
case "july": monthNumber = 7; break; case "august": monthNumber =
8; break; case "september": monthNumber = 9; break; case "october":
monthNumber = 10; break; case "november": monthNumber = 11; break;
case "december": monthNumber = 12; break; default: monthNumber = 0;
break;
-
30
}
return monthNumber; }
public static void main(String[] args) {
String month = "August";
int returnedMonthNumber =
StringSwitchDemo.getMonthNumber(month);
if (returnedMonthNumber == 0) { System.out.println("Invalid
month"); } else { System.out.println(returnedMonthNumber); } }
}
Zadatak 55. Napisati program koji ispituje da li je uneti broj
prost
import java.util.Scanner;
public class DaLiJeProst {
public static void main(String[] args) { int broj; // recenica
koju unosi korisnik Scanner consoleIn = new Scanner(System.in);
System.out.println("Unesite broj za koji proveravamo da li je
prost:"); broj = consoleIn.nextInt(); if (prost(broj)){
System.out.println("Broj je prost"); } else{
System.out.println("Broj nije prost"); } }
static boolean prost(int br) { int brojac = 0; //brojac delioca
for (int i = 2; i
-
31
Zadatak 56. Napisati program koji trai od korisnika da uita broj
i zatim ispisuje sve brojeve koji su manji od tog broja a koji su
prosti
import java.util.Scanner;
public class IspisatiProste {
public static void main(String[] args) { int broj; // recenica
koju unosi korisnik Scanner consoleIn = new Scanner(System.in);
System.out.println("Unesite broj do kojeg ispisujemo proste
brojeve:"); broj = consoleIn.nextInt(); for (int i = 1; i
-
32
Stringovi
Zadatak 57. Napisati program koji uitava dva stringa i proverava
da li su isti.
package zadatak34;
import java.util.Scanner; public class Main { public static void
main(String[] args) {
String str1, str2; Scanner unos = new Scanner(System.in);
System.out.println("Unesite prvu recenicu:"); str1=
unos.nextLine(); System.out.println("Unesite drugu recenicu:");
str2= unos.nextLine();
if (str1.trim().equalsIgnoreCase(str2.trim())){
System.out.println("Stringovi su isti"); }else{
System.out.println("Nisu isti"); } } }
Zadatak 58. Napisati program koji uitava dva stringa i ispisuje
poruku o njihovoj duini i spaja ih u jedan string i tampa taj novi
string.
package javaapplication6;
import java.util.Scanner;
public class JavaApplication6 {
public static void main(String[] args) { String str1, str2;
Scanner unos = new Scanner(System.in); System.out.println("Unesite
prvi String:"); str1= unos.nextLine(); System.out.println("Unesite
drugi String:"); str2= unos.nextLine();
System.out.println("Duzina prvog stringa je: " + str1.length());
System.out.println("Duzina drugog stringa je: " +
str2.length());
String rezultat = str1 + str2; // moze i: //str1.concat(str2)
System.out.println("Spajanjem stringova nastaje: " + rezultat);
} }
-
33
Zadatak 59. Napisati program koji proverava da li je uneta
reenica palindrom
package zadatak34; import java.util.Scanner; public class Main
{
static boolean palindrom(String str){ char
niz[]=str.toCharArray(); for (int i = 0; i < niz.length/2; i++)
{ if(niz[i]!=niz[niz.length-i-1]){ return false; } } return true;
}
public static void main(String[] args) { String str; Scanner
unos = new Scanner(System.in); System.out.println("Unesite
recenicu:"); str= unos.nextLine(); if (palindrom(str)){
System.out.println("Recenica je palindrom"); }else{
System.out.println("recenica nije palindrom"); }
}
}
Reenje koje uzima u obzir i prazna mesta:
package zadatak34; import java.util.Scanner; public class Main
{
static boolean palindrom(String str){ char
niz[]=str.toCharArray(); int i = 0, j=niz.length-1; while
(j-i>=1){ if(niz[i]!=niz[j]){ return false; }
do{i++;}while(niz[i] == ' '); do{j--;}while(niz[j] == ' '); }
return true; }
public static void main(String[] args) { String str; Scanner
unos = new Scanner(System.in); System.out.println("Unesite
recenicu:"); str= unos.nextLine(); if (palindrom(str.trim())){
-
34
System.out.println("Recenica je palindrom"); }else{
System.out.println("recenica nije palindrom"); } } }
Zadatak 60. Napisati program koji trazi od korisnika da unese
reenicu a zatim je ispisuje u obliku gde su sva poetna slova rei
velika slova a sva ostala mala.
import java.util.Scanner; public class UpperCase {
public static void main(String[] args) { String line; //
recenica koju unosi korisnik Scanner consoleIn = new
Scanner(System.in); System.out.println("Unesite recenicu:"); line=
consoleIn.nextLine(); printCapitalized( line ); }
static void printCapitalized( String str ) { char ch; //
trenutni karakter u stringu. char prevCh; // karakter koji prethodi
trenutnom. int i; // pozicija u stringu, od 0 to str.length()-1.
prevCh = '.'; // pocetna vrednost za prethodni karakter // treba da
je bilo sta sto nije slovo for ( i = 0; i < str.length(); i++ )
{ ch = str.charAt(i); if ( Character.isLetter(ch) && !
Character.isLetter(prevCh) ) System.out.print(
Character.toUpperCase(ch) ); else
System.out.print(Character.toLowerCase(ch) ); prevCh = ch; //
trenutni postaje prethodni } System.out.println(); } }
-
35
Nizovi
Zadatak 61. Definisati I inicijalizoviti niz od 10 celih brojeva
koji e sadrati redom parne brojeve . Na kraju ispisati lanove
niza
package niz;
public class Niz {
public static void main(String[] args) {
int parniBrojevi[] = new int[10];
for (int i = 0; i < 10; i++) { parniBrojevi[i] = 2*i+2;
}
System.out.println("Clanovi niza su: ");
for (int i = 0; i < parniBrojevi.length; i++) {
System.out.println(i + ". clan niza je: " + parniBrojevi[i]);
}
} }
Zadatak 62. Napisati program koji definie niz duine dvadeset u
kojem je vrednost nultog lana 1, vrednost prvog lana 2 a svaki
sledei element je jednak zbiru prethodna dva. Na kraju takoe uz
pomo for petlje ispisati vrednosti elemenata niza.
package fibonaci;
public class Fibonaci {
public static void main(String[] args) {
System.out.println("Program koji ispisuje Fibonacijeve
brojeve!");
int niz[] = new int[20];
niz[0] = 1; niz[1] = 2;
for(int i = 2; i < niz.length; i++){ niz[i] = niz[i-1] +
niz[i-2];
} for (int i = 0; i < niz.length; i++) {
System.out.println(i + ". clan niza je: " + niz[i]);
} }
}
Zadatak 63. Napisati program koji od korisnika trai da unese
neki datum i da ispie koji je to po redu dan u godini. Za
izraunavanje definisati i koristiti niz:
int brojDanaUMesecu[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31,
30, 31};
reenje:
package zadatak31; import java.util.Scanner;
public class Zadatak31 {
public static void main(String[] args) {
int niz[]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int
dan, mesec, ukupno=0;
-
36
Scanner unos = new Scanner(System.in); do{
System.out.println("Unesite dan: "); dan = unos.nextInt();
System.out.println("Unesite mesec: "); mesec = unos.nextInt();
}while(mesec>12 ||dan>niz[mesec-1]);
for( int i=0; i
-
37
Klase
Zadatak 65. Napisati program koji e se sastojati od dve
klase:
Klasa: Dete u kojoj e se uvati podaci o imenu, visini i teini
deteta, i koja e sadrati: o Metod za inicijalizaciju podataka o
metodu za tampanje podataka: stampaj() o metode za unos nove visine
i nove teine: promenaVisine(int visina) i
promenaTezine(int tezina) Klasa: GlavnaKlasa, u kojoj e se od
korisnika traiti da unese podatke o detetu, zatim se kreirati
nova
instanca klase Dete pod imenom dete1, stampati podatke, zatim
ponovo traiti nove podatke o visini i tezini, i na kraju drugi put
stampati podatke
package zadatak33;
public class Dete { String ime; double visina; double
tezina;
public Dete(String ime, double visina, double tezina){ this.ime
= ime; this.visina = visina; this.tezina = tezina; }
void unosNoveVisine(double visina){ this.visina = visina; }
void unosNoveTezine(double tezina){ this.tezina = tezina; }
void stampaj(){ System.out.println("Ime je: " + ime);
System.out.println("Visina je: " + visina);
System.out.println("Tezina je: "+ tezina); } }
package zadatak33; import java.util.Scanner;
public class GlavnaKlasa {
public static void main(String[] args) { String ime; double tez,
vis; Scanner unos = new Scanner(System.in);
System.out.print("Unesite ime deteta: "); ime = unos.next();
-
38
System.out.print("Unesite visinu deteta: "); vis =
unos.nextDouble(); System.out.print("Unesite tezinu deteta: "); tez
= unos.nextDouble();
Dete dete1 = new Dete(ime, vis, tez); dete1.stampaj();
System.out.print("Unesite ponovo visinu deteta: "); vis =
unos.nextDouble(); System.out.print("Unesite ponovo tezinu deteta:
"); tez = unos.nextDouble();
dete1.unosNoveTezine(tez); dete1.unosNoveVisine(vis);
dete1.stampaj();
} }
Dodatni primeri
Zadatak 66. Napisati metod koji e pitati korisnika da unese
vrednost i ispisivati njegov kvadratni koren. Ako je uneti broj
negativan, ispisati poruku o greki
public static void stampajKoren (){ System.out.println("Unesite
pozitivan broj"); double x = In.getDouble(); if (x >= 0){
System.out.println("Kvadratni koren iznosi " + Math.sqrt(x));
}else{
System.out.println("Unet je negativni broj"); }
Zadatak 67. Napisati metod koji simulira rezultat bacanja
kockice tako to e ispisivati nasumian broj izmeu 1 i 6. Neka kao
rezultat ispisuje poruku:
Pala Vam je 3! class kockice{
public static void main(String [] args){
baciJednomKockicu();
}
public static void baciJednomKockicu(){ int roll =
(int)(6*Math.random()) + 1; System.out.println("Pala Vam je " +
roll);
}
}
-
39
Programiranje korisnikog interfejsa (Graphical user interface
GUI)
Kreiranje korisnikog interfejsa desktop aplikacije
Primer jednostavne aplikacije:
1. Odabrati opciju File > New Project 2. Meu kategorijama
odabrati Java i podkategoriju Java Application 3. Dati naziv
projektu, i podesiti opcije kao na slici:
Kao poetak izgradnje interfejsa potrebno je kreirati jedan
kontejner koji e sadrati elemente koje
nameravamo da dodamo na interfejs, Kreiramo JFrame
kontejner:
1. Odabrati opciju New > JFrame Form
-
40
2. Dati naziv formi i definisati paket:
3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva,
otvara se prozor za dizajn forme i odgovarajua paleta.
4. Na formu dodati jedan JPanel i zatim na formu dodati tri
labele (JLabels), tri polja za unos teksta (JTextFields), i tri
dugmeta (JButtons):
5. Preimenovati komponente tako da izgledaju kao na slici:
-
41
Dodavanje funkcije dugmadima
1. Desnim klikom na dugme Izai pojavi se konteksni meni i treba
odabrati Events > Action > ActionPerformed
2. U metodi koju NetBeans kreira zameniti red:
// TODO add your handling code here:
Sa:
System.exit(0);
3. istim postupkom na dugme Brii kod zameniti sa:
jTextField1.setText(""); jTextField2.setText("");
jTextField3.setText("");
4. ovaj kod brie sadraj tri polja. 5. Za dugme Saberi na isti
nain uneti
double num1, num2, result; num1 =
Double.parseDouble(jTextField1.getText()); num2 =
Double.parseDouble(jTextField2.getText()); result = num1 + num2;
jTextField3.setText(String.valueOf(result));
Pokretanje programa:
1. Odabrati Run > Run Main Project 2. Ako upozori da projekat
nema glavnu klasu, odabrati je iz liste
3. Rezultat izvoenja je:
-
42
4. Ako elite Windows Look and Feel (tj. Izgled operativnog
sistema u kojem radite) u main klasu uneti naredni kod:
try { UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName()); } catch (Exception ex)
{ ex.printStackTrace(); }
5. Pa e prozor izgledati (Windows XP):
-
43
Zadatak 68. Programirati aplikaciju koji e imati sledei
korisniki interfejs:
Pritiskom na dugme Obradi se obavljaju sledee akcije u
zavisnosti koje radi dugme je obeleeno: o Duina stringa: ispisuje
kao rezultat obrade poruku o duini stringa
o Ispis stringa: ispisuje kao rezultat obrade sam uneti string o
Ispis stringa unazad: Ispisuje se uneti string unazad
Pritiskom na dugme Obrii se brie sadraj polja za unos i rezultat
prethodne obrade
Pritiskom na dugme Izai se zatvara aplikacija
private void jButton1ActionPerformed(java.awt.event.ActionEvent
evt) { String str = jTextField1.getText(); int duzina =
str.length(); if (jRadioButton1.isSelected()) {
jLabel2.setText("Duzina je:" + str.length()); } else if
(jRadioButton2.isSelected()) { jLabel2.setText(str); } else {
jLabel2.setText(""); for (int i = 0; i < duzina; i++) {
jLabel2.setText(jLabel2.getText()+str.charAt(duzina-i-1));
-
44
} } } Zadatak 69. Programirati aplikaciju koji e imati sledei
korisniki interfejs:
Aplikacija treba da u donjem delu ispisuje unetu reenicu velikim
ili malim slovima u zavisnosti da li je
jCheckBox selectovan ili ne
private void
jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) { String
str = jTextField1.getText(); if (jCheckBox1.isSelected()) {
jLabel1.setText("Reenica: " + str.toUpperCase()); } else {
jLabel1.setText("Reenica: " + str.toLowerCase()); } }
-
45
Dodatne opcije:
Postavljanje naslova u jPanel-u
1. Postaviti jPanel na formu 2. u Properties odabrati polje
Border i zatim Titled Border, i uneti naslov panela u polje
Title
Postavljanje radio dugmadi
1. Na formu postaviti jednu Button Group komponentu (bie
vidljiva samo u Inspector-u) 2. Zatim na formu postaviti potreban
broj Radio Button komponenti 3. Za svaku od Radio Button komponenti
odabrati u prozoru properties opciju ButtonGroup i u njoj
selektovati Button Group kojem elimo da pripadaju
Neke dodatne opcije prozora Properties za postavljenu forme
1. eljeni naslov forme se unosi u opciji Title 2. U polju Bounds
se definiu koordinate poetne pozicije prozora 3. Opcijom Resizable
se definie da li je prozor promenjive ili fiksne veliine
Neke dodatne opcije prozora Properties za ostale komponente
1. U polje toolTipText se unosi tekst koji se pojavljuje kada se
mi nadnese nad komponentu
Komponente menija
1. U cilju formiranja glavnog menija aplikacije se mogu
koristiti sledee komponenete: a. Menu Bar (1) b. Menu (2) c. Menu
Item (3) d. Menu Item/CheckBox (4) e. Menu Item/RadioButton (5) f.
Separator (6)
2. Komponentama Menu Item se najee dodaju dogaaji koji su ranije
prikazani npr. za dugmad
-
46
Pokretanje novih prozora unutar aplikacije
1. Kliknuti desnim na naziv projekta i odabrati New>Jdialog
Form 2. Odabrati naziv novog dialoga i postaviti ga u isti paket
kao i osnovnu formu:
3. Izdizajnirati dialog po potrebi 4. Dodati dogaaj na neki od
Menu Item-a iz glavnog menija osnovne forme (desni klik na
odgovarajui
Menu Item i odabir opcije: Events>Action>actionPerformed)
5. Kopirati deo sadraja main metoda novog dialoga (crveni kod) u
metodu koja obrauje dogaaj tog
Menu Item-a. Metoda bi izgleda slino ovom:
private void
jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
NewJDialog1 dialog = new NewJDialog1(new javax.swing.JFrame(),
true); dialog.setVisible(true); }
(1)
(2)
(3)
(4)
(6)
-
47
Dodavanje opcija Combo Box-u (isto u jListi)
1. Postaviti Combo box na formu 2. U prozoru Properties u polju
model uneti eljene opcije
Pokretanje programa van NetBeans-a
1. Odabrati opciju Run > Clean and Build Main Project 2.
Pokrenuti jar fajl u dist direktorijumu projekta
Zadatak 70. Programirati aplikaciju koja e sadrati formu kao na
slici:
U Combo box-u definisati sledee opcije:
-
48
Dodavanje funkcija komponenti jList
1. Dodavanje elemenata u listu. Dodati naredni kod koji kreira
model koji e omoguavati unos elemenata u listu (postavlja se u
konstruktor metodu):
DefaultListModel listModel = new DefaultListModel();
jList1.setModel(listModel);
2. Za dugme Dodaj odabrati opciju
Events>Action>actionPerformed i u metodu za obradu izuzetka
dodati sledei kod:
String str = jTextField5.getText();
listModel.addElement(str);
3. Brisanje lemenata iz liste. Za dugme izbaci dodati metodu za
obradu izuzetka sa sledeim kodom:
int rdbroj = jList1.getSelectedIndex(); if (rdbroj == -1) {
jLabel7.setText("Morate selektovati neku stavku"); } else {
listModel.removeElementAt(rdbroj); jLabel7.setText(""); }
4. Postavljanje sadraja selektovanog polj liste u TextField. Na
jList kliknuti desnim i odabrati opciju Events > Mouse >
MouseClicked i u metodu dodati naredni kod
jTextField5.setText(listModel.getElementAt(jList1.getSelectedIndex()).toString());
ili:
int broj = jList1.getSelectedIndex(); String str =
listModel.getElementAt(broj).toString();
jTextField5.setText(str);
-
49
5. Izmena sadraja elemenata iz liste se radi sa narednim kodom
dodeljenom dugmetu izmeni
private void jButton2ActionPerformed(java.awt.event.ActionEvent
evt) { String str = jTextField5.getText(); int broj =
jList1.getSelectedIndex(); listModel.removeElementAt(broj);
listModel.add(broj, str); }
-
50
Kreiranje desktop aplikacije sa konekcijom na bazu
Uputstvo za instalaciju MySql-a i kreiranje konekcije
MySQL
Prvo je potrebno instalirati MySQL server, najjednostavniji nain
je instalacijom XAMPP-a.
1. Pokrenuti instalaciju xampp-win32-???. Gde je ??? oznaka
berzije XAMPP-a 2. pokrenuti odgovarajui MySQL servis (u zavisnosti
od verzije Control panel XAMPP-a izgleda slino
ovako):
ili
-
51
Netbeans 7.0
Za pristup postojeoj bazi (npr. ako ve postoji baza pod nazivom
proba)
1. Pokrenuti NetBeans, u kartici services otvoriti opciju
Databases pa zatim Drivers i na polje MySQL (connector-J driver)
kliknuti desnim i odabrati Connect Using i ispuniti formu:
a. Host: localhost b. Port: 3306 c. Database: proba d. Username:
root e. Password: uneti ranije unetu lozinku pri instalaciji
mySql-a (xampp-a) (default je prazna)
6. Pojavljuje se vor sa detaljima konekcije:
-
52
Kreiranje aplikacije sa novom bazom podataka
1. Ponoviti prve korake za Kreiranja korisnikog interfejsa
desktop aplikacije sve do kreiranja poetnog okvira
2. desni klik na MySQL Server at localhost: 3306 i odabrati
opciju Create Database:
3. Uneti naziv nove baze
4. Kreirati nove tabele
-
53
5. definisati potrebne kolone
6. Klikom na dugme Add Column se pokree naredna forma gde se
definiu osnovne opcije kolona:
ili
7. i uneti odgovarajue podatke
i:
-
54
7. Desnim klikom na naziv tabele i odabrirom opcije View Data se
lista sadraj tabele
-
55
Kreiranje aplikacije uz pomo postojeih tabela
Slede koraci za kreiranje aplikacije:
1. Odabrati opciju File > New Project u NetBeans-u i zatim
sledee opcije (U novijim verzijama NetBeans-a ne postoji ova
opcija):
2. U Name and Location koraku odabrati sledee opcije:
-
56
3. U Master Table koraku odabrati sledee opcije
4. U Detail Options koraku klinuti Finish. 5. Sistem tada kreira
osnovni korisniki interfejs sa tabelom i konekcijom na bazu.
-
57
Postavljanje dodatnih kontrola na aplikaciju
1. Ispod polja za unos lokacije dodati dve oznake (jLabel) i po
jedan jSlider i jCheckBox kao na slici:
2. Kliknuti desnim na Slider i odabrati Bind > value i
odabrati sledee opcije:
-
58
3. Isto uraditi i za jLabel2 ali sa opcijom Bind > Text 4.
Kliknuti desnim na Check Box i odabrati Bind > value i odabrati
sledee opcije:
5. U opciji Properties za Slider komponentu postaviti Minimalnu
i Maximalnu vrednost na 4000 i 4050, tim redom
6. Pokretanjem programa se dobija sledea forma:
-
59
U main metodi potrebno je definisati i otvoriti konekciju:
try{ Class.forName("com.mysql.jdbc.Driver"); conn =
DriverManager.getConnection
("jdbc:mysql://localhost:3306/Projekat","root","root"); stmt =
conn.createStatement(); }catch(Exception ex){ ex.printStackTrace();
}
8. Definisati potrebne promenjive i dodati odgovarajue
import-e:
public static Connection conn; public static Statement stmt;
public static ResultSet rezultati;
import java.sql.Connection; import java.sql.DriverManager;
import java.sql.ResultSet; import java.sql.Statement;
9. Ako, na primer, elimo da popunimo combo box sa imenima igraca
potrebno je postaviti na formu jComboBox
10. definisati metodu puniCombo():
public void puniCombo(){ ResultSet rez; String sql="SELECT ime,
prezime FROM projekat.radnik ORDER BY prezime"; try{
rez=stmt.executeQuery(sql); while (rez.next()) {
jComboBox1.addItem(rez.getString("ime")+"
"+rez.getString("prezime")); } }catch(Exception ex){
ex.printStackTrace(); } };
-
60
11. i postaviti poziv metode: puniCombo() u konstruktor metodi
12. Za izraunavanje proseka plata i njegovo ispisivanje u jLabel
komponenti moe se napisati sledea
metoda:
public void izracunajProsek(){ ResultSet rez; String sql="SELECT
avg(plata) FROM projekat.radnik"; try{ rez=stmt.executeQuery(sql);
while (rez.next()) { Float pom = rez.getFloat("avg(plata)");
jLabel1.setText("Prosecna plata iznosi: "+String.valueOf(pom)+"
din."); } }catch(Exception ex){ ex.printStackTrace(); } }
13. Izmena irine kolona u jTable
TableColumn kolone=null; kolone =
jTable1.getColumnModel().getColumn(1);
kolone.setPreferredWidth(150); kolone =
jTable1.getColumnModel().getColumn(2);
kolone.setPreferredWidth(150);
-
61
Zadatak
Kreirati aplikaciju koja e sluiti za prikaz Informacionog
sistema bioskopa
Baza podataka bioskop treba da sadri sledee tabele:
Film sa sledeim podacima: ifra filma, naziv filma, reiser,
glavna uloga, duina filma, anr
Sala sa sledeim podacima: ifra sale, naziv sale, kapacitet sale,
maksimalni broj dnevnih projekcija
Zaposleni sa sledeim podacima: ifra zaposlenog, ime, prezime,
radno mesto, godiste, plata, struna
sprema
Proizvodi (proizvodi koji se mogu kupiti u bioskopu kokice,
sokovi, itd) sa sledeim podacima: ifra
proizvoda, naziv proizvoda, tip proizvoda, cena, trenutna
raspoloiva koliina
Rezervacija sa sledeim podacima: ifra rezervacije, ime
posetioca, broj karata, vreme projekcije
Aplikacija treba da sadri naredne prozore koji e prikazivati
podatke iz baze podataka:
-
62
Kod za unos podataka o zaposlenom (aktivira se dugmetom Unesi
podatke):
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection
("jdbc:mysql://localhost:3306/bioskop","root","");
stmt = conn.createStatement();
PreparedStatement pstmt;
String ime = jTextField1.getText();
String prezime = jTextField2.getText();
int sifra = Integer.parseInt(jTextField3.getText());
String mesto = jComboBox1.getSelectedItem().toString();
int god = Integer.parseInt(jTextField4.getText());
int plata = Integer.parseInt(jLabel9.getText());
String sprema = jComboBox2.getSelectedItem().toString();
String insertQuery = "INSERT INTO zaposleni (sifr, ime, prezime,
rdmesto,
godiste, plata, ss)"
+"VALUES"
+"(?, ?, ?, ?, ?, ?, ?)";
pstmt = conn.prepareStatement(insertQuery);
pstmt.setInt(1, sifra);
pstmt.setString(2, ime);
pstmt.setString(3, prezime);
pstmt.setString(4, mesto);
pstmt.setInt(5, god);
pstmt.setInt(6, plata);
pstmt.setString(7, sprema);
int rowCount = pstmt.executeUpdate();
pstmt.close();
conn.close();
}catch(Exception ex){
ex.printStackTrace();
}
-
63
Kreiranje najjednostavnije aplikacije za projekat
1. Kreirati nekoliko tabela u MySQL-u po ranijim uputstvima 2.
Kreirati nov projekat, pa zatim novi jFrame u okviru tog
projekta:
3. Na prozoru postaviti glavni meni i/ili nekoliko dugmadi koji
e kasnije biti postavljeni kao linkovi ka pojedinim prozorima
4. Kreirati posebne prozore koji e prikazivati svaki po jednu
ranije definisanu tabelu iz baze uz pomo opcije:
i
-
64
Zatim:
5. Zatim u narednim koracima odabrati opcije za prikaz podataka
iz tabela:
-
65
6. Zatim sledei kod iz main metoda svake Master/detail forme
EventQueue.invokeLater(new Runnable() { public void run() {
JFrame frame = new JFrame(); frame.setContentPane(new
NewMasterDetailForm());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack();
frame.setVisible(true); } });
7. Kopirati u odgovarajui metod koji se pokree pritiskom
odgovarajueg dugmeta sa osnovnog prozora
private void jButton1ActionPerformed(java.awt.event.ActionEvent
evt) { EventQueue.invokeLater(new Runnable() { public void run() {
JFrame frame = new JFrame(); frame.setContentPane(new
NewMasterDetailForm());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack();
frame.setVisible(true); } }); }
8. Na taj nain je kreirana jednostavna aplikacija koja na
osnovnom prozoru prikazuje nekoliko dugmadi i gde svako dugme
pokree odgovarajuu master/detail formu za prikaz podataka iz po
jedne tabele baze podataka.
-
66
Dodatni primeri:
Deo koda kojim se postie centriranje prozora:
Dimension dim=Toolkit.getDefaultToolkit().getScreenSize();
int w = frame.getSize().width; int h =
frame.getSize().height;
int x = (dim.width-w)/2;
int y = (dim.height-h)/2;
frame.setLocation(x,y);
Mogue je koristiti sledee delove koda, kako bi se korisnik
obavestio o uspenosti ili neuspenosti unosa, izmene i brisanja
podataka:
JOptionPane.showMessageDialog(this, "Uspean unos ili
izmena!",
"Obavetenje o unosu", JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(this, "Greka pri unosu ili
izmeni!",
"Obavetenje o unosu", JOptionPane.ERROR_MESSAGE);
int brisanje = JOptionPane.showConfirmDialog(this,"Da li ste
sigurni?", "Brisanje",JOptionPane. WARNING_MESSAGE);
if (brisanje==0) {
JOptionPane.showMessageDialog(this,"Uspeno brisanje!",
"Obavetenje o brisanju",JOptionPane.INFORMATION_MESSAGE);
}else{
JOptionPane.showMessageDialog(this,"Brisanje otkazano!",
"Obavetenje o brisanju",JOptionPane.INFORMATION_MESSAGE);
} Unos pretrage u tabeli
Na svakoj Master/Detail formi, mogue je dodati polje za
pretragu. Da bi omoguili pretragu, neophodno je da:
1. fajl RowSorterToStringConverter.java, prekopirati u paket
aplikacije i kompajlirati ga. 2. Prevui fajl miem na formu za koju
se pravi pretraga. Tada e se taj fajl nai u odeljku
Inspector (pod Other Components). Tu je potrebno desnim klikom
otvoriti Properties i za table podesiti MasterTable.
3. Nakon toga, desni klik na tekstualno polje za pretragu pa
Bind text, kako bi se izvrila neophodna podeavanja u tabu Basic i u
tabu Advanced.
4. Ponavljanjem ovog postupka za svaku Master/Detail Formu, moe
se omoguiti pretraga svake tabele putem odgovarajue Master/Detail
Forme.
Pokretanje aplikacije van NetBeansa
Na kraju se naredbom Build (desni klik na projekat) kreira
izvrni fajl (.jar), kojim se pokree aplikacija van Netbeans-a.Taj
fajl se nalazi u folderu dist koji je podfolder osnovnog projekta.
Taj RadnikProjekat.jar fajl slui Vam za pokretanje aplikacije van
Netbeansa (izvui preicu npr. na desktop i dvoklikom na nju otvara
se aplikacija iako je Netbeans zatvoren.