java

125
ECLIPSE - mediu de dezvoltare in java www.eclipse.org - downloads - JavaEE Developer - se selecteaza Windous (62/32/bit) . Files -New - JavaProject - Numele proiectului - Finish Package Explorar - 1. SRC click dreapta - new- class - java class- numele clasei - Finish - am efectuat o clasa noua. class test{ public static void main (String args[]){ System.out.println("Buna ziua!"); } } Rezultat: Buna ziua! Aceasta este o clasa principala, pentru ca aici se gaseste metoda main println - este metoda de a printa un anumit mesaj, o metoda versatila STRUCTURA LEXICALA A LIMBAJULUI JAVA abstract boolean break - sa se opreasca functia daca aceasta metoda este ok. byte case cast catch char class Este urmat de numele clasei const continue default do double - se poate folosi una sau mai multe variabile care permite sa se scrie cu parte fixa si cu zecimale. else - altfel extends - mostenire (inheritance) final finally float for

Upload: manolaki-aurika

Post on 11-Apr-2016

7 views

Category:

Documents


0 download

DESCRIPTION

Java pentru incepatori

TRANSCRIPT

Page 1: Java

ECLIPSE - mediu de dezvoltare in java www.eclipse.org - downloads - JavaEE Developer - se selecteaza Windous (62/32/bit) .Files -New - JavaProject - Numele proiectului - Finish

Package Explorar - 1.SRC click dreapta - new- class - java class- numele clasei - Finish - am efectuat o clasa noua.

class test{

public static void main (String args[]){

System.out.println("Buna ziua!");

} }

Rezultat: Buna ziua!

Aceasta este o clasa principala, pentru ca aici se gaseste metoda mainprintln - este metoda de a printa un anumit mesaj, o metoda versatila

STRUCTURA LEXICALA A LIMBAJULUI JAVA

abstract  boolean  break  - sa se opreasca functia daca aceasta metoda este ok.byte  case  cast  catch  char  class  Este urmat de numele claseiconst  continue  default  do  

double - se poate folosi una sau mai multe variabile care permite sa se scrie cu parte fixa si cu zecimale.

else  - altfelextends  - mostenire (inheritance)final  finally  float  for  future  generic  goto  

if  Daca. Se realizeaza un test.implements  

Page 2: Java

import  inner  instanceof  intinterface  long  native  new  null  operator  outer  package  private  protected  public  Face sa metoda sa fie publicarest  return  short  static  super  switch   - ne ajuta sa sa salvam timp si spatiu in eclipsesynchronized  this  throw  throws  transient  try  var  void  volatile  while  Cat timp, in cat timpbyvalue  

Variabilele in Java (5)

Page 3: Java

class test {

public static void main(String agrs[]){double nume_var;nume_var = 28.0;

System.out.println("invat piata valutara");System.out.println("fericire");System.out.print(nume_var);System.out.print("ani");

}}

Rezultat:

invat piata valutarafericire28.0ani

doulbe - se poate folosi una sau mai multe variabile care permite sa se scrie cu parte fixa si cu zecimale.

print - va afisa mesajul pe aceeasi linie

println - va afisa pe linii separate mesajul

Cum se introduce de la tastatur in consola, cand un user vrea sa introduca de la tastatura ceva, se afiseaza mesajul in consola (6)

Se foloseste variabila de tip Scanner

Se foloseste user input - System.in

Ex:1

import java.util.Scanner;

class test {

private static Scanner aurika;

public static void main(String agrs[]){

aurika = new Scanner (System.in);

System.out.println(aurika.nextLine());}

}

Tezultat: ( se dubleaza scrisul)

Salut Alexandru, ce mai faci?Salut Alexandru, ce mai faci?

Ex: 2

Page 4: Java

import java.util.Scanner;

class test {

public static void main(String args[]){Scanner aurika = new Scanner(System.in);System.out.println(aurika.nextLine());

}

}

Rezultat: ( se dubleaza scrisul de la tastatura)

Buna ziua, vreu sa reusesc sa invat bineBuna ziua, vreu sa reusesc sa invat bine

Dezvoltarea variabililor si user input pentru crearea unui program (unui calculator) (7)

Pentru a folosi user input (System.in) avem nevoie sa importam tipul de variabila Scanner import java.util.Scanner;

Ex: adunare

import java.util.Scanner;

class test {

private static Scanner aurika;

public static void main (String args[]){

aurika = new Scanner (System.in);

double pnum;double dnum;double rez;

System.out.println("Primul numar este:");pnum=aurika.nextDouble();System.out.println("Am doilea numar este:");dnum=aurika.nextDouble();rez=pnum+dnum;System.out.println(rez);

}}

Rezultat:

Primul numar este:15Am doilea numar este:

Page 5: Java

1025.0Ex: adunare

import java.util.Scanner;

class test {

private static Scanner aurika;

public static void main (String args[]){

aurika = new Scanner (System.in);

double pnum;double dnum;double fnum;double rez;

System.out.println("Primul numar este:");pnum=aurika.nextDouble();System.out.println("Am doilea numar este:");dnum=aurika.nextDouble();System.out.println("Al treilea numar este:");fnum=aurika.nextDouble();rez=pnum+dnum+fnum;System.out.println(rez);

}}

Rezultat:

Primul numar este:1Am doilea numar este:2Al treilea numar este:58.0

Ex: cu inmultire

import java.util.Scanner;

class test {

public static void main (String arg[]){

Scanner aurika = new Scanner(System.in);double pnum, dnum, rez;System.out.println("Acesta este primul numar: ");pnum = aurika.nextDouble();System.out.println("Acesta este al doilea numar: ");dnum = aurika.nextDouble();rez = pnum * dnum;

Page 6: Java

System.out.println(rez);

}

}

Rezultat:

Acesta este primul numar: 5,2Acesta este al doilea numar: 2,915.08

Operatori matematici (8)

int - variabile intregidouble - variabile si cu zecimale+ plus- minus/ impartit* inmultit% restul impartirii= operator de atribuire

Ex: cu adunare

import java.util.Scanner;

class test {

public static void main (String args[]){

Scanner aurika = new Scanner (System.in);

int a,b,c;a=9;b=3;c=a+b;System.out.println(c);

}}

Rezultat:

12

Operatori de incrementare si decrementare (9)

se poate adauga o valoare unei variabile deja declarate.

Page 7: Java

++variabila - inseamna ca se aduaga un singur numar

- - variabila - se scade un singur numar

pentru mai multe adunari/scaderi: var=var+8; var=var-7; sau var+=8; var-=8

se foloseste si *;/

Ex: adunare

import java.util.Scanner;

class test {

public static void main (String args[]){

Scanner aurika = new Scanner (System.in);

int var;var=5;++var;

System.out.println(var);

}

}

Rezultat: 6

Ex: scadere

import java.util.Scanner;

class test {

public static void main (String args[]){

Scanner aurika = new Scanner (System.in);

int var;var=5;--var;

System.out.println(var);

}

}

Rezulat: 4

Ex: adunare

Page 8: Java

import java.util.Scanner;

class test {

public static void main (String args[]){

Scanner aurika = new Scanner (System.in);

int var;var=5;var=var+6;

System.out.println(var);

}

}

Rezultat: 11

Instructiunea If (10)

realizeaza un test: true sau fals

daca se indeplineste o conditie, se executa instr1, daca nu, in caz contra, se executa instr2

== operator de egalitate

= operator de atribuire(atribuie o valoare)

operatori  relationali:  <=,  >,  <=,  ==, ! =

Ex:

class test {

public static void main (String args[]){

int num;num=6;if(num==9){

System.out.println("DA");} else {

System.out.println("numarul este egal");}

}

}

Rezultat: numarul nu este egal ( pentru ca 6 nu este egal cu 9)

Page 9: Java

Ex: cu <=

import java.util.Scanner;

class test {

public static void main (String arg[]){

Scanner aurika = new Scanner(System.in);

int numar;numar = 4;if(numar<= 6){

System.out.println("Rezultatul este corest!");} else{

System.out.println("Rezultatul este gresit!");

}

}

}

Rezultat: Rezultatul este corest!( pentru ca 4<=6)

Multiple conditi. Operatori logici Comanda If (11)

Operatori logici: && - are functia si; || - are functia sau;

operatori  logici:      &&(and),         ||(or),        !(not)

Ex: cu && - si

class test {

public static void main (String args[]){

int v1,v2; v1 = 8;v2 = 12;if (v1>5 && v2<15){

System.out.println("este corect");}else{

System.out.println("nu este corect");}

}}Rezultat: este corect, deoarece (8>5 si 12<15), se va afisa rezultatul corect, doar daca amandoua conditii sunt corecte.

Ex: cu || - sau

Page 10: Java

class test {

public static void main (String args[]){

int v1,v2;

v1 = 8;v2 = 12;

if (v1>5 || v2>15){

System.out.println("este corect");}else{

System.out.println("nu este corect");}

}

}Rezultat: este corect, || -sau afiseaza daca se indeplineste o conditie, in situatia aceasta doar 8>5 este corect.

Switch (12) -are aceeasi functie ca if

Ex: cu default

class test {

public static void main (String args[]){int punctaj;punctaj = 5; switch (punctaj) {

case 1:System.out.println("Echipa a facut egal");break;

case 2:System.out.println("Echipa a fost invinsa");break;

case 3:System.out.println("Echipa a castigat");break;

default:System.out.println("Echipa nu a facut nimic");break;

}

}}Rezultat: Echipa nu a facut nimic - pentru ca nu avem case 5, si afiseaza ce este in default

Page 11: Java

Ex:

class test {

public static void main (String args[]){

int punctaj;punctaj = 3;

switch (punctaj) {

case 1:System.out.println("Echipa a facut egal");break;

case 2:System.out.println("Echipa a fost invinsa");break;

case 3:System.out.println("Echipa a castigat");break;

default:System.out.println("Echipa nu a facut nimic");break;

}

}

}

Rezultat: Echipa a castigat- pentru ca avem punctaj= 3, si ne afiseaza din case 3

case - cazul

break - sa se opreasca daca instructiunea este corecta.

Instructiunea While - cat timp?, in cat timp? (13)

Instructiunea While - este instructiune de tip repetitiv, executa o anumita conditie, atat timp cat ea este adevarata.

Se foloseste operatorul de incrementare ++; --;

class test {

public static void main (String args[]){

Page 12: Java

int contor;contor =0;while (contor<5){

System.out.println(contor);contor++;

}

}

}Rezultat: se afiseaza de la 0 la 4, pentru ca daca 4 se incrementeaza devine 5, si apoi 5=5, si nu mai afiseaza nimic

0

1

2

3

4

Clase multiple, in mai multe fisiere (14)

Cum se lucreaza in Java cu clase multiple.

se creaza o noua clasa - click dreapta pe SRC- new- class - java class - numele clasei noua, alex.java - acum avem 2 clase test.java si alex.java

Ex: cu doua clase

clasa - alex.java

package test;

public class alex {public void mesajSimplu(){

System.out.println("Aceasta este a doua clasa alex");}

}

clasa - test.java

import test.alex;

Page 13: Java

class test{

public static void main(String args[]){

alex alexObject = new alex();

alexObject.mesajSimplu();

}}

Rezultat: "Aceasta este a doua clasa alex"

Utilizarea metodelor care au si parametri inclusi, incorporarea parametrilor (15)

se foloseste functii de concatenare

Ex: se folosesc clasa in clasa

package test;

public class bine {

public void mesajSimplu(String nume){System.out.println("Buna ziua, " +nume);

}

}

import java.util.Scanner;

import test.bine;

class test {

public static void main (String arg[]){

Scanner input = new Scanner(System.in);bine bineObject = new bine();System.out.println("Introduce numele aici: ");String nume = input.nextLine();bineObject.mesajSimplu(nume);

}

}

Rezultat:

Page 14: Java

Introduce numele aici: andreiBuna ziua, andrei

"Introduce numele aici" - este din clasa test unde se afla si functia main,

"Buna ziua" + nume, - este din clasa bine

Ex:

Clasa repet- clasa externa

public class repet {

public void mesaj(String prenume){

System.out.println("Buna ziua!" + prenume + ", cu ce va pot ajuta");

}

public void vineri(String nume){

System.out.println("Astazi este vineri 16 ctombrie 2015");

}

public void samba(String salsa){

System.out.println("Va multumim! Sa a veti o zi frumoasa!");

}}

Clasa test.java- clasa main

import java.util.Scanner;

class test {

public static void main (String args []){

Scanner input = new Scanner(System.in);

repet repetObject = new repet();

System.out.println("Introduceti penumele aici:");

String prenume = input.nextLine();repetObject.mesaj(prenume);

System.out.println();

String nume = input.nextLine();repetObject.vineri(nume);

Page 15: Java

System.out.println(); String salsa = input.nextLine();

repetObject.samba(salsa);

}}

Rezultat:

Introduceti penumele aici:georgianBuna ziua!georgian, cu ce va pot ajuta

in ce data suntem?Astazi este vineri 16 ctombrie 2015

multumescVa multumim! Sa a veti o zi frumoasa!

Clase multiple, multiple variabile, multiple instante (16)

se folosec 2 clase : clasa test.java si bine.java

private= se poate folosi sau vedea doar de utilizatorul care face clasa;

Ex:

public class bine {

private String numeUser;public void setareNume(String nume){

numeUser=nume;}

public String preiaNume(){return numeUser;

}public void numire(){

System.out.printf("Numele userului este %s ", preiaNume());}

}

import java.util.Scanner;

class test {

Page 16: Java

public static void main (String arg[]){

Scanner input = new Scanner(System.in);bine bineObject = new bine();System.out.println("Introdu numele tau aici: ");String temp = input.nextLine();bineObject.setareNume(temp);bineObject.numire();

}}

Rezultat:

Introdu numele tau aici: AurikaNumele userului este Aurika

Metodele de tip Constructor (17)

numele constructorului trebuie sa fie aceeasi cu numele clasei in care lucram.

%s - preia argumentul de tip String

Ex:

class test {

public static void main (String arg[]){

bine bineObject = new bine("Aurika");bineObject.numire();}

}

public class bine {

private String numeUser;

public bine(String nume){numeUser=nume; metoda constructor

}public void setareNume(String nume){

numeUser=nume;}

public String preiaNume(){return numeUser;

Page 17: Java

}public void numire(){

System.out.printf("Numele userului este %s ", preiaNume());}

}

Rezultat: Numele userului este Aurika

Ex: cand avem mai multe nume, si vrem sa apara

class test {

public static void main (String arg[]){

bine bineObject = new bine("Sofia");bineObject.numire();System.out.println();

bine bineObject2 = new bine("Filip");bineObject2.numire();

}}

Rezultat: Numele userului este Sofia Numele userului este Filip

if - instructiunea if imbricate (if in if)(18)Nested if statement

Ex:class test {

public static void main (String arg[]){

int ani = 60;if (ani<50){

System.out.println("Esti tanar");}else{

System.out.println("Esti batran");if (ani>75){

System.out.println("Esti Foarte batran");}else{

System.out.println("Esti de varsta potrivita");}

}}}

Rezultat:Esti batranEsti de varsta potrivita

Page 18: Java

Calcularea mediilor, pentru a introduce date de la tastatura cu functia Scanner (19)

Ex; vrem sa calculam media

import java.util.Scanner;class test {

public static void main (String arg[]){

Scanner input = new Scanner(System.in);int total = 0;int nota;int medie;int contor = 0;

while (contor<6){nota=input.nextInt();total=total+nota;contor++;

}medie =total/6;System.out.println("Media este: " +medie);

}

}

Rezultat:123456Media este: 3

Instructiuni repetitive for (20)

for(punct de plecare, punct de oprire, incrementare/decrementare)

Ex: pentru incrementare

class test{

public static void main(String args[]){

for(int contor=1; contor<=10;contor++){System.out.println(contor);

}}

}

Rezultat: 12

Page 19: Java

345678910

Ex: cu incrementare cu 3 unitaticlass test{

public static void main(String args[]){

for(int contor=1; contor<=10;contor+=3){System.out.println(contor);

}}

}Rezultat:14710S-a incrementat cu 3.

Ex: cu decrementare

class test{

public static void main(String args[]){

for(int contor=10; contor>=1;contor-=3){System.out.println(contor);

}}

}

Rezultat:10741

Instructiunea repetitiva do while (21) istructiuni repetitive if, while, for se bazeaza pe o anumita conditie in functie de valoarea de adevar, se

executa intructiunea din corpul instructiunii respective do while se executa cel putin o singura data

executa lista de intructiuni conditia, cat timp conditia este adevevarata

Ex: class test{

Page 20: Java

public static void main(String args[]){

int contor = 0;

do {System.out.println(contor);contor++;

} while (contor<=5);

}}

Rezultat: atata timp cat contor este mai mare sau egal decat 5 se va afisa rezultatul pana la 5, prin incrementare012345

Ex:

class test{

public static void main(String args[]){

int contor = 20;

do {System.out.println(contor);contor++;

} while (contor<=10);

}}

Rezultat: 20

Program care genereasa numera la intamplare Random , generator de numere aleatoare. (22)

trebuie de importam functionalitata Random in clasa: import java.util.Random;

trebuie sa initializam Random num = new Random (); nextInt - valori de tip intregi (int)

Ex: cu zarimport java.util.Random;

class test{

Page 21: Java

public static void main(String args[]){Random zar = new Random();int num;for(int contor = 1; contor<=10; contor++){

num = 1+zar.nextInt(6);System.out.println(num);

}

}

}

Rezultat: se afiseaza 10 numere aleatorie de la 1 la 62666313342

Siruri de date (23)

sirul de date ne permite sa stocam mai multe variabile si sa le avem pe toate intr-un anumit sir.

permite doar stocarea a unui anumit tip de variabile, fie variabile de tip intregi sau variabile cu zecimale, se face separat un sir pentru fiecare caracter.

sintaxa de declarare - int nume = new int [];

Ex: pentru valor intregi folosim intclass test{

public static void main(String args[]){int paul[] = new int[10];paul[2] = 45;paul[5] = 16;paul[8] =125;paul[9] = 85;System.out.println(paul[5]);

}

}

Rezultat: 16

Ex: Initializarea sirurilor in momentul cand o declaram o si initializam, pentru a scuti linii de cod.

class test{

public static void main(String args[]){

Page 22: Java

int paul[] = {5,25,987,56,42,31,76,16,40,17};

System.out.println(paul[5]);

}

}

Rezultat: 31

Siruri de numere, construirea unui tabel cu cap de tabel (24)

1. se creaza un hader (cap de tabel) - System.out.println("Index\tValoare");

2. declaram un sir de numere care au valori intregi int: - int paul []= {2,45,94,168,18,37,52,19};

3. ciclu repetitiv for, unde punctul de plecare este 0 (zero), mergem pana la lungimea sirului nume.length (length se fodifica automat), incrementarea se face cu o singura valoare (contor ++)for(int contor=0; contor<paul.length; contor++)

length - lungime\t - spatiu+ - operator de concatenare

class test{

public static void main(String args[]){

System.out.println("Index\tValoare");

int paul []= {2,45,94,168,18,37,52,19};

for(int contor=0; contor<paul.length; contor++){

System.out.println(contor+ "\t" +paul[contor]);}

}

}

Rezultat:Index Valoare0 21 452 943 1684 185 376 527 19

Suma elementelor unui sir de numere (25)

Page 23: Java

vom declara un sir de tip integ (int), apoi initializam sirul de numere.

in alta variabila vom stoca suma tuturor numerelor ( int suma = 0)

ciclu repetitiv for

Ex: suma numerelor intregiclass test{

public static void main(String args[]){

int paul[] = {2,15,94,67,34};int suma =0;for(int contor=0; contor<paul.length;contor++){

suma=suma+paul[contor];}

System.out.println("Aceasta este suma:"+suma);

}

}

Rezultat: Aceasta este suma:212

Generarea unui numar aleator de tip Random (26)

1. importam obiect de tip Random2. se creaza un obiect de tip Random -- Random rand = new Random()3. declaram un sir de numere intregi (int) si se initializeaza4. sa afisam rezultatul sub forma unui tabel

Ex: numere aleatoare pentru un zar

import java.util.Random;

class test{

public static void main (String args[]){

Random rand = new Random();

int frecv [] = new int [7];

for(int zar=1;zar<100; zar++){

++frecv[1+rand.nextInt(6)];

}System.out.println("Fata \t Frecventa");

for ( int lora = 1; lora<frecv.length; lora++){System.out.println(lora+"\t"+frecv[lora]);

}}

Page 24: Java

}

Rezultat:Fata Frecventa1 142 163 154 215 186 15

FOR (27)

o noua functie a lui for -- for(int x:nume) - in hands for loopx- indentificator

Ex: suma elementelor unui sirclass test{

public static void main (String args[]){

int paul[]={2,7,8,10,21};int adunare = 0;for(int x:paul){

adunare = adunare +x;}System.out.println("Adunarea este :" +adunare);

}

}

Rezultat: Adunarea este :48

Siruri multidimensionale (30)

se foloseste for imbricat (for in for); se foloseste o metoda externa in aceeasi clasa; sir multidimensional - int x[][]

Ex: construirea unui tabel cu rand si coloane:

class test{public static void main(String [] args) {

int sir1[][]= {{1,2,3,4,},{5,6,7,8}};int sir2[][]={{9,8,7},{6},{5,4}};

System.out.println("Acest este sirul 1");dispunere(sir1);

System.out.println("Acest este sirul 2");

Page 25: Java

dispunere(sir2);}

public static void dispunere(int x[][]){

for(int rand=0; rand<x.length; rand++){for(int coloana=0; coloana<x[rand].length; coloana++){

System.out.print(x[rand][coloana] +"\t");}System.out.println();

}}}

Rezultat:Acest este sirul 11 2 3 45 6 7 8Acest este sirul 29 8 765 4

Calcularea mediei, cu for( int x: nume) (31)

fara sa stim inainte ce argumente avem se foloseste metoda externa in aceeasi clasa ... trei puncte se foloseste ca nu stim inca cate

argumente o sa avem de la inceput.

Ex:class test{

public static void main(String [] args) {

System.out.println(medie(12,34,5,63,9,46,85,94));

}public static int medie(int...numere){

int total=0;for(int x:numere){

total+=x;}return total/numere.length;

}}

Rezultat: se afiseaza media, : 43

Clasa Time(32)+(33) clasa Timp, se va afisa ora

Page 26: Java

se creza o metoda, prin care se va seta si se va reda timpul cu ajutoru unei clase externe, la care utilizatorul va introduce 3 valori de la tastatura reprezentand ora, minute, secunde.

Ex:

Clasa bine - clasa externapublic class bine {

private int orah;private int minute;private int secunde;

public void seteazaTimp(int h, int m, int s){orah = ((h>0 && h<24) ? h:0);minute = ((m>0 && m<60) ? m:0);secunde = ((s>0 && s<60) ? s:0);

}

public String toMilitary(){

return String.format("%02d:%02d:%02d", orah, minute, secunde);}

}

Clasa test - principalaclass test{

public static void main(String [] args) {bine bineObject= new bine();

System.out.println(bineObject.toMilitary());bineObject.seteazaTimp(15, 27, 48);System.out.println(bineObject.toMilitary());

}}

Rezultat:00:00:0015:27:48

Setarea timpului "AM"si "PM" (34)

continuare la 32 si 33 clasa principala si externa

Ex:

Clasa bine - externa

public class bine {

Page 27: Java

private int orah;private int minute;private int secunde;

public void seteazaTimp(int h, int m, int s){orah = ((h>0 && h<24) ? h:0);minute = ((m>0 && m<60) ? m:0);secunde = ((s>0 && s<60) ? s:0);

}

public String toMilitary(){

return String.format("%02d:%02d:%02d", orah, minute, secunde);}

public String toNormal(){return String.format("%d:%02d:%02d %s",((orah==0 || orah==12)?

12:orah%12), minute, secunde,(orah<12? "AM" : "PM"));}}

Clasa test- principala

class test{

public static void main(String [] args) {bine bineObject= new bine();

System.out.println(bineObject.toMilitary());System.out.println(bineObject.toNormal());bineObject.seteazaTimp(15, 27, 48);System.out.println(bineObject.toMilitary());System.out.println(bineObject.toNormal());

}}

Rezultat:00:00:0012:00:00 AM15:27:483:27:48 PM

Distinctie intre:(35)public, private, this

public - variabile sunt publice, se pot vedea in toate clasele.private - vriabile de tip privat, sunt si pot fi vizibile doar in cadrul acelei clase unde sunt scrise.this - sa se foloseasca aceasta metoda.

Ex:

bine.java - clasa externapublic class bine {

Page 28: Java

public int orah=1;private int minute=2;private int secunde=3;

public void seteazaTimp(int orah, int minute, int secunde){this.orah = 4;this.minute = 5;this.secunde = 6;

}

public String toMilitary(){

return String.format("%02d:%02d:%02d", orah, minute, secunde);}

public String toNormal(){return String.format("%d:%02d:%02d %s",((orah==0 || orah==12)?

12:orah%12), minute, secunde,(orah<12? "AM" : "PM"));}}

clasa test - principalaclass test{

public static void main (String args[]) {bine bineObject= new bine();

System.out.println(bineObject.toMilitary());System.out.println(bineObject.toNormal());bineObject.seteazaTimp(15, 27, 48);System.out.println(bineObject.toMilitary());System.out.println(bineObject.toNormal());

}

}Rezultat: 01:02:031:02:03 AM04:05:064:05:06 AM

Constructori multipli (36-37-38)pentru a afisa ora, minute, secunde

Ex:Clasa bine- clasa externa

public class bine {

private int ora;private int minut;private int secunda;

public bine(){this(0,0,0);

}public bine(int h){

Page 29: Java

this(h,0,0);}public bine(int h,int m){

this(h,m,0);}public bine(int h, int m, int s){

setTime(h,m,s);}public void setTime(int h, int m, int s){

setOra(h);setMinut(m);setSecunda(s);

}public void setOra(int h){

ora=((h>=0 && h<24)?h:0);}public void setMinut(int m){

minut=((m>=0 && m<60)?m:0);}public void setSecunda(int s){

secunda=((s>=0 && s<60)?s:0);}public int getOra(){

return ora;}public int getMinut(){

return minut;}public int getSecunda(){

return secunda;}public String toMilitary(){

return String.format("%02d:%02d:%02d",getOra(), getMinut(), getSecunda());}}

Clasa test.java - principalaclass test{

public static void main (String args[]) {bine bineObject= new bine();bine bineObject2= new bine(4);bine bineObject3= new bine(4,22);bine bineObject4= new bine(4,22,54);

System.out.printf("%s\n", bineObject.toMilitary());System.out.printf("%s\n", bineObject2.toMilitary());System.out.printf("%s\n", bineObject3.toMilitary());System.out.printf("%s\n", bineObject4.toMilitary());}

}

Rezultat:00:00:0004:00:0004:22:00

Page 30: Java

04:22:54

Metoda toString (40)

se creaza o clasa noua: [forex] avem nevoie de trei variabile pe care le vom declara private,

sa afizam luna, zi, an. Vizibilitatea lor este doar in cadrul acestei clase.

Constructorul reprezinta o metoda de a apela in interiorul clasei, care are numele identic cu clasa respectiva.

Acesta este constructorul:public forex (int l, int z, int a){

luna = l;zi =z;

an = a:; Apoi mergem in linea de printare, sa vedem ce printam in

consola

System.out.printf("Constructorul este %s\n", this);

cand intalneste cuvantul cheie this, va trece la metoda de returnare prin Sting, in care i sa declarat formatul:

public String toString(){return String.format("%d/%d/%d/", luna, zi, an);

%s - de tip String;\n - pentru a trece pe randul urmator;

Ex: se afiseaza luna, zi, an

Clasa forex - clasa externapackage test;

public class forex {

private int luna;private int zi;private int an;

public forex (int l, int z, int a){luna = l;zi =z;an = a;System.out.printf("Constructorul este %s\n", this);

}public String toString(){

return String.format("%d/%d/%d/", luna, zi, an);}

}

Clasa test - clasa principalaimport test.forex;

Page 31: Java

class test{

public static void main (String args[]){forex forexObject = new forex(10,27,2015);

}}

Rezultat:Constructorul este 10/27/2015/

Concepte de compozitie toString (41) +40 putem avea si clase pe langa variabile si obiecte care

fac refereire la alte clase. sa se faca refereire la un Object din alte clase.

Ex:Clasa bine -clasa externa

import test.forex;

public class bine{

private String nume;private forex datan;

public bine (String n, forex dn){nume = n;datan =dn;

}public String toString(){

return String.format("Numele este %s, iar data nasterii este %s",nume, datan);

}}

Clasa forex - clasa externa

package test;

public class forex {

private int luna;private int zi;private int an;

public forex (int l, int z, int a){luna = l;zi =z;an = a;System.out.printf("Constructorul este %s\n", this);

}public String toString(){

Page 32: Java

return String.format("%d/%d/%d/", luna, zi, an);}

}

Clasa test - clasa principala unde se afla mainimport test.forex;

class test{

public static void main (String args[]){forex forexObject = new forex(12,12,2015);bine bineObject = new bine("Aurika", forexObject);System.out.println(bineObject);

}}

Rezultat:Constructorul este 12/12/2015/Numele este Aurika, iar data nasterii este 12/12/2015/

In clasa test- cu main, se va face referire la Object, atat pentru variabile cat si pentru obiecte.nume - se va declara in clasa main prin Stringdatan - este un obiect pe care il reprezentam prin clasa forex (clasa exterena), la fel se face referire prin metoda String.

Enumeratii = enum (42)

enum - sunt foarte asemanatoare cu clasele, insa acestea sunt folosite pentru a declara constantele.

constantele - sunt acele variabile a caror valoare nu se modifica in timpul executiei programului.

se va inlocui class cu enum

Ex:

clasa bine - clasa externa

public enum bine {

Andrei ("economist", "19"),Mihai("inginer", "34"),Sara ("ospatar", "21");

public final String job;public final String varsta;

bine(String specialitate, String ani){ job =specialitate;varsta =ani;

}public String getJob(){

return job;}public String getVarsta(){

return varsta;

Page 33: Java

}

}

Clasa test - clasa principala unde este main

class test {

public static void main (String []args) {

for(bine oameni: bine.values()) {

System.out.printf("%s\t %s\t %s\n", oameni, oameni.getJob(), oameni.getVarsta());

}

}}

Rezultat:Andrei economist 19Mihai inginer 34Sara ospatar 21

Obiectele de tip enum (43)

sunt asemanatoare cu clasele, dar sunt folosite pentru declararea contantelor.

se va folosi EnumSet.range(from,to);

Ex: Clasa bine - clasa externa

se face schimbare din class in enum ; se scriu constantele cu 2 sau mai multe argumente; se creaza variabile, cate una pentru fecare argument; se creaza constructor; metodele pentru fiecare variabile, sa se returneza ce este

specificat in argumente de tip String - prin metoda get..()

public enum bine {

Andrei ("economist", "19", "inalt"),Mihai("inginer", "34", "scund"),Sara ("ospatar", "21", "pitic"),Alex ("frizer", "31", "slab"),Grig("cantaret", "28", "inalt"),Oana("contabil", "45", "grasa");

public final String job;public final String varsta;public final String statura;

bine(String specialitate, String ani, String st){

Page 34: Java

job =specialitate;varsta =ani;statura = st;

}public String getJob(){

return job;}public String getVarsta(){

return varsta;}public String getStatura(){

return statura;} }

Clasa test - clasa principala

se importa java.util.EnumSet; pentru a avea cap de tabel afisam : System.out.println("Nume\

tActivitate\tVarsata\tStatura"); EnumSet.range(for, to)

import java.util.EnumSet;

class test {

public static void main (String []args) {

System.out.println("Nume\tActivitate\tVarsata\tStatura");

for(bine oameni: bine.values())

System.out.printf("%s\t %s\t %s\t %s\n", oameni, oameni.getJob(), oameni.getVarsta(), oameni.getStatura());

System.out.println("\n De aici incepe rezultatul pentru range \n");

for(bine pol: EnumSet.range(bine.Mihai,bine.Grig))System.out.printf("%s\t %s\t %s\t %s\n", pol,

pol.getJob(), pol.getVarsta(), pol.getStatura());

}

}

Rezultat:Nume Activitate Varsata StaturaAndrei economist 19 inaltMihai inginer 34 scundSara ospatar 21 piticAlex frizer 31 slabGrig cantaret 28 inaltOana contabil 45 grasa

De aici incepe rezultatul pentru range

Mihai inginer 34 scundSara ospatar 21 piticAlex frizer 31 slabGrig cantaret 28 inalt

Page 35: Java

Variabile de tip static (44)

Ex: se declara 2 variabile de tip String; apoi o variabila de tip static; se creaza un constructor, constructorul trebuie sa aiba acelas

nume cum este clasa;

Clasa forex - clasa externapackage test;

public class forex{ private String nume; private String prenume; private static int jucatori = 0; public forex(String n, String p){

nume = n; prenume=p; jucatori++; System.out.printf("Jucator nou %s %s, jucator in echipa %d\n",

nume, prenume, jucatori); }

}

clasa test - clasa principala mainimport test.forex;

class test {

public static void main (String [] args){

forex jucator1 = new forex("Taureci", "Alexandru");forex jucator2 = new forex("Soboli", "Sorin");forex jucator3 = new forex("Yulas", "Alexandru");

}

}

Rezultat:Jucator nou Taureci Alexandru, jucator in echipa 1Jucator nou Soboli Sorin, jucator in echipa 2Jucator nou Yulas Alexandru, jucator in echipa 3

Variabile de tip static (45)

Page 36: Java

aceste variabile sunt vizibile obiectelor pe care le creem pe langa setul de date pe care fiecare obiect il are individual.

Ex: creeam 3 metrode pentru fiecare variabila (getNume, getPrenume,getJucatori)

clasa forex-clasa externa

public class forex{ private String nume; private String prenume; private static int jucatori = 0; public forex(String n, String p){

nume = n; prenume=p; jucatori++; System.out.printf("Jucator nou %s %s, jucator in echipa %d\n",

nume, prenume, jucatori); }

public String getNume(){ return nume;

} public String getPrenume(){

return prenume; } public static int getJucatori(){

return jucatori; }

}

clasa test - clasa principala unde este mainimport test.forex;

class test {

public static void main (String [] args){

forex jucator1 = new forex("Taureci", "Alex");forex jucator2 = new forex("Popescu", "Emilia");forex jucator3 = new forex("Tataru", "Fanel");

System.out.println();System.out.println(jucator1.getNume());System.out.println(jucator1.getPrenume());System.out.println(jucator1 . getJucatori () );

}}

Rezultat:Jucator nou Taureci Alex, jucator in echipa 1Jucator nou Popescu Emilia, jucator in echipa 2Jucator nou Tataru Fanel, jucator in echipa 3

Page 37: Java

TaureciAlex3 (nr. de obiecte)

Variabile de tip {final} (46)

Aceasta variabila nu-si modifica valoarea, nu este nici-o constanta, dar o data luata o variabila nu se poate sa se schimbe.

Ex: scriem 2 variabila; constructor, in care atribuim valorile; metoda, fuctia formatul de tip String

clasa forex.java- clasa externapackage test;

public class forex{

private int suma; private final int NUMAR; public forex(int x){

NUMAR = x; }

public void adaugare(){ suma+=NUMAR;

} public String toString(){

return String.format("suma=%d\n",suma); }}

clasa test.java - clasa principalaimport test.forex;

class test {

public static void main (String [] args){

forex forexObject = new forex(10); for(int i=0; i<5; i++){

forexObject.adaugare(); System.out.printf("%s", forexObject);

}}}

Rezultat:suma=10

Page 38: Java

suma=20suma=30suma=40suma=50

Conceptul de mostenire - extends (47)

Poate sa intervina intre 2 sau mai multe clase, O clasa denumita super clasa poate sa contina anumite obiecte, metode care vor fi mostenite de alte clase, care vor purta numele de sub clase, toate aceste sub clase vor avea acces la super clasa.Avem metoda cuprinsa in mai multe clase.extends - cuvnatul cheie pentru mostenire (inherintance)

clasa bine.java - sub clasa

import test.sport;

public class bine extends sport {

}

clasa forex.java - sub clasa

package test;

public class forex extends sport {

}

clasa sport.java - super clasa

package test;

public class sport {

public void invata() {System.out.println("Trebuie sa invat zilnic");

}

}

clasa test.java - clasa principala main

import test.forex;

class test {

public static void main (String [] args){

bine bineObject = new bine();forex forexObject = new forex();

bineObject.invata();

Page 39: Java

forexObject.invata();}

}

Rezultat:Trebuie sa invat zilnic Trebuie sa invat zilnic

Interfata grafica (48)

Trebuie sa importam clasa care face referire pentru interfata grafica import javax.swing.JOptionPane;

Clasa test.java - clasa principala, functia main

import javax.swing.JOptionPane;

class test {

public static void main (String [] args){

String numar1 = JOptionPane.showInputDialog("Primul numar este:");String numar2 = JOptionPane.showInputDialog("Al doilea numar este:");

int nr1 = Integer.parseInt(numar1);int nr2 = Integer.parseInt(numar2);

int suma = nr1 + nr2;

JOptionPane.showMessageDialog(null, "Suma este " + suma, "Suma numere", JOptionPane.PLAIN_MESSAGE);}

}

Rezultat:

Page 40: Java
Page 41: Java

Pane - panou void - golOption - optiuneshow - a arataparse - analizaInteger - intregswing - balansare, leagan

Elementele clasei JFarme (49)

Ex: bine.java - clasa externa

import java.awt.FlowLayout;import javax.swing.JFrame;import javax.swing.JLabel;

public class bine extends JFrame {

private JLabel elem1;

public bine(){

super ("Titlu fereastra");setLayout(new FlowLayout());

elem1 = new JLabel("Acesta este un element");elem1.setToolTipText("Text pentru ToolTip");add(elem1);

Page 42: Java

}}

test.java - functia main

import javax.swing.JFrame;

class test {

public static void main (String [] args){

bine bineObject = new bine();bineObject.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);bineObject.setSize(300,200);bineObject.setVisible(true);

}

}

Rezultat:

Flow - fluxLayout - schemaFrame - cadruLable - etichetaextends - extindere, mostenireTool - instrument Tip - sfatSize - dimensiuneVisible - vizibil

Interfata grafica GUI (50)

Page 43: Java

import java.awt.FlowLayout; - pentru stabilirea schemeiimport java.awt.event.ActionListener; - asteapta ca operatiunea sa fie realizata de userimport java.awt.event.ActionEvent; - se refera strict la evenimente, sa se apese pe butoane, click;import javax.swing.JFrame; - ne permite sa lucram cu ferestre, cadruimport javax.swing.JTextField; - elemente specifice acestor claseimport javax.swing.JPasswordField;import javax.swing.JOptionPane;

public class bine extends JFrame {

private JTextField elem1;private JTextField elem2;private JTextField elem3;private JPasswordField pass;

public bine(){super ("Titlu fereastra EXEMPLU");setLayout(new FlowLayout());

elem1 = new JTextField(10);add(elem1);

elem2 = new JTextField("introduce textul");add(elem2);

elem3 = new JTextField("nu edita", 20);elem3.setEditable(false);add(elem3);

pass = new JPasswordField("parola");add(pass);

clasa bine.java - clasa secundara

import java.awt.FlowLayout;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import javax.swing.JFrame;import javax.swing.JTextField;import javax.swing.JPasswordField;import javax.swing.JOptionPane;

public class bine extends JFrame {

private JTextField elem1;private JTextField elem2;private JTextField elem3;private JPasswordField pass;

public bine(){

super ("Titlu fereastra EXEMPLU");

Page 44: Java

setLayout(new FlowLayout());

elem1 = new JTextField(10);add(elem1);

elem2 = new JTextField("introduce textul");add(elem2);

elem3 = new JTextField("nu edita", 20);elem3.setEditable(false);add(elem3);

pass = new JPasswordField("parola");add(pass);

eventhandler handler = new eventhandler();elem1.addActionListener(handler);elem2.addActionListener(handler);elem3.addActionListener(handler);pass.addActionListener(handler);

}

private class eventhandler implements ActionListener {public void actiuneEfectuata(ActionListener event){

String string = " ";if(event.getSource() ==elem1)

string = String.format("campul1:%s", event.getActionComand);

elseif(event.getSource() ==elem2)

string = String.format("campul2:%s", event.getActionComand);

else if(event.getSource() ==elem3)

string = String.format("campul3:%s", event.getActionComand());

else if(event.getSource()==pass)

string = String.format("campul parola:%s", event.getActionComand());

JOptionPane.showMessageDialog(null, string);}

}}

Clasa principala

Cadru si eticheta JFrame si JLable

import javax.swing.JFrame;

Page 45: Java

class test{

public static void main (String [] args){

JFrame aurika = new JFrame ("Studiez IT");aurika.setSize(300,200);aurika.show () ;

}}

Rezultat: se afiseaza o fereastra cu titlu: Studiez IT

import javax.swing.JFrame;import javax.swing.JLabel;

class test{

public static void main (String [] args){

JFrame aurika = new JFrame ("Studiez IT");aurika.setSize(250,200);aurika.getContentPane();aurika.add(new JLabel("Alexandru Taureci"));

aurika.show () ;

}}

Rezultat:

Page 46: Java

Crearea unei ferestre principale :Componentele SwingJButton - butonJCheckBox - caseta de selectareJRadioButton - buton de radio

JButton crearea unui buton cu functia JButton, prin importarea functie

import javax.swing.JButton;

JButton buton = new JButton("BUTON SWING!"); buton.setActionCommand("butonulSwing");

// adaugarea unui buton pe o suprafata JPanel panouButon = new JPanel();panouButon.add(buton);

Ex: clasa bine.javaimport java.awt.FlowLayout; - pentru stabilirea schemei;import java.awt.GridLayout; schema grila;import javax.swing.JButton; - buton;import javax.swing.JFrame; - ne permite sa lucram cu ferestre import javax.swing.JPanel; - panou

class bine extends JPanel { - panou cu functia de mostenire [extends]

public bine(){

JButton buton1 = new JButton("BUT1");JButton buton2 = new JButton("BUT2");JButton buton3 = new JButton("BUT3");buton1.setActionCommand("bbb");buton2.setActionCommand("ccc");buton3.setActionCommand("aaa");

add(buton1);add(buton2);add(buton3);}

}

Se va afia o fereastra cu 3 butoane cu numele: BUT1BUT2BUT3

Page 47: Java

JCheckBox

JCheckBox cb1 = new JCheckBox(“Optiune1"); cb1.setSelected(true);

JPanel checkPanel = new JPanel();checkPanel.setLayout(new GridLayout(0, 1));

//GridLayout Aşează componentele într-un grid bidimensional.checkPanel.add(cb1);

se creaza caseta de selectare cu functia:JCheckBoximport javax.swing.JCheckBox;

Ex: clasa forex.javaimport java.awt.FlowLayout; - pentru stabilirea schemeiimport java.awt.GridLayout; - schema cu grilaimport javax.swing.JCheckBox; - caseta de selectareimport javax.swing.JPanel; -panou

class forex extends JPanel{ - mostenire[extends]public forex (){

JCheckBox cb1 = new JCheckBox("Optiune1");cb1.setSelected(true);JCheckBox cb2 = new JCheckBox("Optiune2");cb2.setSelected(true);JCheckBox cb3 = new JCheckBox("Optiune3");cb3.setSelected(true);this.setLayout(new GridLayout(0,1));add(cb1);add(cb2);add(cb3);

}}

Rezultat: se va afisa o fereastra cu o caseta de selectare:Optiune1Optiune2Optiune3

JRadioButton

// creare buton radio

JRadioButton primulbuton = new JRadioButton(“BUTON 1”);primulbuton setActionCommand(“BUTON 1”);primulbuton.setSelected(true);

Page 48: Java

JradioButton alt_doilea_buton = new JRadioButton(“BUTON 2”);alt_doilea_buton.setActionCommand(“BOTON 2”);…// definirea unui grup de butoane

ButtonGroup grupbutoane = new ButtonGroup();gropbutoane.add(primulbuton);gropbutoane.add(alt_doilea_buton);…// adaugarea butoanelor radio pe o suprafata JPanel();

JPanel radioPanel = new JPanel();radioPanel.setLayout(new GridLayout(0, 1));radioPanel.add(primulbuton);radioPanel.add(alt_doilea_buton);

Ex: clasa sport.javaimport java.awt.FlowLayout; - schemaimport java.awt.GridLayout;- grila schemaimport javax.swing.ButtonGroup; -grupuri de butoaneimport javax.swing.JPanel; - panouimport javax.swing.JRadioButton; - buton radio

class sport extends JPanel{ - mostenire

public sport(){

JRadioButton butonAlb = new JRadioButton("Alb");butonAlb.setActionCommand("Alb");butonAlb.setSelected(true);

JRadioButton butonRosu = new JRadioButton("Rosu");butonRosu.setActionCommand("Rosu");

JRadioButton butonVerde = new JRadioButton("Verde");butonVerde.setActionCommand("Verde");

ButtonGroup grupbuton = new ButtonGroup();grupbuton.add(butonAlb);grupbuton.add(butonRosu);grupbuton.add(butonVerde);

this.setLayout(new GridLayout(0,1));add(butonAlb);add(butonRosu);add(butonVerde);

}

}

Page 49: Java

Rezultat: se va afisa o caseta unde se poate selecta butonul: Aleb, Rosu, Verde

Clasa principala main - test.javaimport java.awt.Component;import java.awt.FlowLayout;import java.awt.GridLayout;import javax.swing.BorderFactory;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;

class test extends JFrame {

public static void main (String [] args){

test app = new test();bine panouButoane = new bine();forex check = new forex();sport lorea = new sport();

JPanel panou = new JPanel();panou.setLayout(new GridLayout(0,1));panou.add(panouButoane);panou.add(check);panou.add(lorea);

panou.setBorder(BorderFactory.createEmptyBorder(40,100,20,100));app.getContentPane().add(panou);app.pack();app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);app.show () ;

}

}

Rezultatul: impreuna cu cele 3 clasa externe: bine, forex, sport

Page 50: Java

Afisarea unui program cu butoane:

import javax.swing.*;import java.awt.*;import java.awt.event.*;

class test{

public static void main(String[]args){JFrame aurika = new JFrame("Denumirea casetei");JButton b1 = new JButton("1");JButton b2 = new JButton("2");JButton b3 = new JButton("3");JButton b4 = new JButton("4");JButton b5 = new JButton("5");

Container cp = aurika.getContentPane();cp.setLayout(new FlowLayout());cp.add(b1);cp.add(b2);cp.add(b3);cp.add(b4);cp.add(b5);

aurika.setSize(300,100);aurika.setVisible(true);

}}

Page 51: Java

Rezultat:

Afisarea unui program cu butoane putin mai complex:import javax.swing.*;import java.awt.*;import java.awt.event.*;

class test{

public static void main(String[]args){

JFrame aurika = new JFrame("Denumirea casetei");JButton b1 = new JButton("1");JButton b2 = new JButton("2");JButton b3 = new JButton("3");JButton b4 = new JButton("4");JButton b5 = new JButton("5");

JPanel pan = new JPanel();pan.add(b1);aurika.add(pan);b1.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){JOptionPane.showMessageDialog(null," Domnul Alexandru!");}} );

pan.add(b2);aurika.add(pan);b2.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){JOptionPane.showMessageDialog(null," Mergem astazi afara? Pentru ca este ora 21!"); - functia pentru a arata mesaj dupa ce apesi pe un buton

}} );

Container cp = aurika.getContentPane();cp.setLayout(new FlowLayout());cp.add(b1);cp.add(b2);cp.add(b3);cp.add(b4);cp.add(b5);

aurika.setSize(300,100);aurika.setVisible(true);

}}

Page 52: Java

Rezultat:

Daca dai click pe 1

Daca dai click pe 2: rezultat:

Dispunere cu BorderLayout

import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;

public class test { public static void main(String[] args) { JFrame f = new JFrame("Dispunere cu BorderLayout"); Container cp = f.getContentPane(); cp.setLayout(new BorderLayout()); cp.add(new JButton("Nord"), BorderLayout.NORTH); cp.add(new JButton("Sud"), BorderLayout.SOUTH); cp.add(new JButton("Est"), BorderLayout.EAST); cp.add(new JButton("Vest"), BorderLayout.WEST); cp.add(new JButton("Centru"), BorderLayout.CENTER); f.setSize(300, 200); f.setVisible(true); } }

Rezultat:

Page 53: Java

Un alt exemplu:import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;

public class test { public static void main(String[] args) { JFrame f = new JFrame("Dispunere cu BorderLayout"); Container cp = f.getContentPane(); cp.setLayout(new GridLayout(3, 2));

cp.add(new JButton("rosu")); cp.add(new JButton("albastru")); cp.add(new JButton("verde")); cp.add(new JButton("alb")); cp.add(new JButton("roz")); cp.add(new JButton("galben")); f.setSize(300, 200); f.setVisible(true); } }

Rezultat:

Page 54: Java

Cadru Frame - realizarea unei ferestre cu 2 butoane "OK" si "Cancel"

Clasa externa - repet.java

import java.awt.*;import java.awt.event.*;import javax.swing.*;

public class repet extends JFrame implements ActionListener , WindowListener {

private Object b1;

public repet () { this.setTitle("Cadru Frame"); // stabilirea titul ferestrei this.addWindowListener(this); setLayout(null); Button b1; Button b2; b1 = new Button("Ok"); b2 = new Button("Cancel"); b1.setBounds(100,50,50,50); // dimensiunea butoanelor b2.setBounds(100,150,50,50); b1.addActionListener(this); b2.addActionListener(this); add(b1); add(b2); setSize(300,300); setVisible(true);

}

Page 55: Java

public void actionPerformed(ActionEvent event) { JOptionPane.showMessageDialog(null, "ceva frumos ");

if(event.getSource().equals(b1)); setVisible(false); System.exit(0);

}public void windowActivated(WindowEvent event){}public void windowClosing(WindowEvent event){

System.exit(0);}

public void windowClosed(WindowEvent event) { }public void windowDeactivated(WindowEvent event) { }public void windowDeiconified(WindowEvent event) { }public void windowIconified(WindowEvent event) { }public void windowOpened(WindowEvent event) { }

}

Clasa main - clasa principalaimport javax.swing.*;import java.awt.*;import java.awt.event.*;

class test{

public static void main(String[]args){repet frm = new repet();

}}

Rezultat:

Dupa ce apesi pe ok se afiseaza urmatorul mesaj:

Page 56: Java

ActionListener

import javax.swing.*;import java.awt.*;import java.awt.event.*;

public class test extends JFrame implements WindowListener, ActionListener{

TextField text = new TextField(20);Button b;private int numClicks =0;

public static void main(String[]args){test aurika = new test("Prima fereastra");aurika.setSize(300,200);aurika.setVisible(true);

}public test(String title){

super(title);setLayout(new FlowLayout());addWindowListener(this);b=new Button("OK");add(b);add(text);b.addActionListener(this);

}public void actionPerformed(ActionEvent e){

numClicks++;text.setText("Apasa butonul\t"+numClicks+ "next");

}public void windowClosing(WindowEvent e){

dispose();System.exit(0);

}

public void windowClosed(WindowEvent event) { }public void windowDeactivated(WindowEvent event) { }public void windowDeiconified(WindowEvent event) { }public void windowIconified(WindowEvent event) { }public void windowOpened(WindowEvent event) { }

public void windowActivated(WindowEvent e) { }

}

Page 57: Java

Rezultat:Dupa ce scrii ceva in casuta se afiseaza:

ActionListener

import javax.swing.*;import java.awt.*;import java.awt.event.*;

public class test {public test(){

frame();}

private void frame() {JFrame aur = new JFrame("Dialog");aur.setSize(400,200);aur.setVisible(true);

JPanel pan = new JPanel();JButton b1 = new JButton("OK");b1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e){

Page 58: Java

JOptionPane.showMessageDialog(null,"Aceasta este caseta mea");

}});

pan.add(b1);aur.add(pan);

}public static void main(String [] args){

new test();}

}

Rezultat:

Dupa ce apas "OK" rezulta:

Pentru a obţine un obiect JLabel care afişează un text simplu putem construi o astfel de etichetă ca în exemplul următor:

import java.awt.*;import javax.swing.*;

public class forex extends JFrame {

public forex(){setTitle("Avertizare pentru Taureci Alexandru!!!");Container cp = getContentPane();JLabel aur = new JLabel ("Pentru o viata sanatoasa face-ti miscare zilnic cel putin 30 de minute!");cp.setLayout(new FlowLayout());cp.add(aur);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Page 59: Java

setSize(500,100);}

public static void main(String []args){

new forex().show () ;}

}

Rezultat: se afiseaza caseta cu mesajul:

Pentru a obţine un obiect JTextField :

import java.awt.*;import javax.swing.*;

public class forex extends JFrame {

public forex(){setTitle("Avertizare !!!");Container cp = getContentPane();

JLabel aur = new JLabel("Student foarte bun"); cp.setLayout(new FlowLayout()); cp.add(aur); JTextField inf = new JTextField(); cp.add(inf); inf.setText("Informatii despre studentii la ASE");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(300, 100); } public static void main(String[] args) {

new forex().show () ; } }

Rezultat:

Page 60: Java

Putem obţine un JButton :

import java.awt.*;import javax.swing.*;import java.awt.event.*;

public class forex extends JFrame {

public forex() {

JButton buton = new JButton ("OK", new ImageIcon ("C:\\Users\\Aurika\\Desktop\\1586.jpg") );

JTextField text = new JTextField(30);

this.setTitle("test"); Container cp = getContentPane(); cp.setLayout(new FlowLayout()); cp.add(buton); cp.add(text);

buton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){

text.setText("Felicitari Alexandru aveti o sotie zambitoare!"); } });

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(500, 400); } public static void main(String[] args) {

new forex().show () ; }

Rezultat: se va afisa o ferastra cu o poza in care daca se da click se afiseaza un mesaj

Page 61: Java

Grupuri de butoane - JButtonGroup- JToggleButton,

import java.awt.*;import javax.swing.*;import java.awt.event.*;

public class forex extends JFrame {

public forex() {

Container contentPane = getContentPane(); ButtonGroup grup = new ButtonGroup(); JToggleButton [] butoane = new JToggleButton[]{

new JToggleButton(new ImageIcon("C:\\Users\\Aurika\\Desktop\\3a.jpg")),new JToggleButton(new ImageIcon("C:\\Users\\Aurika\\Desktop\\3a.jpg")),new JToggleButton(new ImageIcon("C:\\Users\\Aurika\\Desktop\\3a.jpg")),new JToggleButton(new ImageIcon("C:\\Users\\Aurika\\Desktop\\3a.jpg")),new JToggleButton(new ImageIcon("C:\\Users\\Aurika\\Desktop\\3a.jpg"))

}; contentPane.setLayout(new FlowLayout()); for (int i = 0; i < butoane.length; ++i){ grup.add(butoane[i]); contentPane.add(butoane[i]); } setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(300, 300); } public static void main(String[] args) throws Exception{ new forex().show () ; } }

Rezultat:

Page 62: Java

Meniuimport java.awt.*;import javax.swing.*;import java.awt.event.*;

public class repet extends JMenuBar{ JFrame frmParent; public repet() { JMenu fileMenu = new JMenu("File"); JMenu editMenu = new JMenu("Edit"); JMenu quitMenu = new JMenu("Quit"); // Meniul File: Open, Save, Close JMenuItem openItem = new JMenuItem("Open"); JMenuItem saveItem = new JMenuItem("Save"); JMenuItem closeItem = new JMenuItem("Close"); //Meniul Edit: Cut, Copy, Paste, Find (Find, Replace) JMenuItem cutItem = new JMenuItem("Cut"); JMenuItem copyItem = new JMenuItem("Copy");

Page 63: Java

JMenuItem pasteItem = new JMenuItem("Paste"); JSeparator separator1 = new JSeparator(); JMenu findMenu = new JMenu("Find"); JMenuItem findItem = new JMenuItem("Find"); JMenuItem replaceItem = new JMenuItem("Replace"); //Meniul Quit JMenuItem exitItem = new JMenuItem("Exit"); JMenuItem aboutItem = new JMenuItem("About"); fileMenu.add(openItem); fileMenu.add(saveItem); fileMenu.add(closeItem); editMenu.add(cutItem); editMenu.add(copyItem); editMenu.add(pasteItem); editMenu.add(separator1); findMenu.add(findItem); findMenu.add(replaceItem); editMenu.add(findMenu); editMenu.add(new JCheckBox("Bifa")); quitMenu.add(exitItem); quitMenu.add(aboutItem); add(fileMenu); add(editMenu); add(quitMenu); }}

import java.awt.*;import javax.swing.*;import java.awt.event.*;

public class test extends JFrame{ public test() { this.setJMenuBar(new repet()); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(500, 300); this.setVisible(true); } public static void main(String[] args) { new test(); }}

Rezultat:

Page 64: Java

Listarea fisierelor cu o anumita extensieimport java .io .*;

class sport implements FilenameFilter {String extensie ;sport ( String extensie ) {this . extensie = extensie ;}public boolean accept ( File dir , String nume ) {return ( nume . endsWith ("." + extensie ) );}

public static void main ( String [] args ) {try {File director = new File (".");String [] list ;if ( args . length > 0)list = director . list (new sport ( args [0]) );elselist = director . list ();for (int i = 0; i < list . length ; i ++)System . out. println ( list [i]);}catch ( Exception e) {e. printStackTrace ();}}}

Rezultat:.classpath.project.settingsbuildsrc

Page 65: Java

Ex: Folosirea unui iteratorimport java . util .*;

class repet {public static void main ( String args []) {

ArrayList a = new ArrayList ();

for (int i=1; i <=20; i++)// Adaugam numerele de la 1 la 10a.add(new Integer (i));

Collections . sort(a);// Amestecam/sortam (shuffle) elementele colectieiSystem . out. println (" Vectorul amestecat : " + a);

// Parcurgem vectorulfor ( ListIterator it=a. listIterator ();

it. hasNext (); ) {Integer x = ( Integer ) it. next ();

if (x. intValue () % 2 == 0)// Daca elementul curent este par , il facem 0it. set( new Integer (0));}System . out. print (" Rezultat : " + a);}}

Rezultat:Vectorul amestecat:[1, 2, 3,4,5,6, 7, 8,9, 10, 11, 12, 13, 14,15,16,17,18, 19, 20] Rezultat : [1, 0, 3, 0, 5, 0, 7, 0, 9, 0, 11, 0, 13, 0, 15, 0, 17, 0, 19, 0]

Gestionarea pozitionarii - pozitionarea a 5 butoaneimport java.awt.*;

public class test {public static void main ( String args []) {

Frame f = new Frame (" Java - Fereastra "); //crearea ferestrei,f. setLayout ( new GridLayout (3, 2)); // sa se afiseze butoanele in 3 randuri si 2 coloane

Button b1 = new Button (" Button 1"); // crearea butoanelorButton b2 = new Button ("2");Button b3 = new Button (" Button 3");Button b4 = new Button ("Long - Named Button 4");Button b5 = new Button (" Button 5");f.add(b1); //adaugarea butoanelorf.add (b2); f. add(b3); f.add(b4); f.add(b5);f. pack ();f. show () ;// afisarea ferestrei}}

Page 66: Java

Rezultat:

Daca schimbam f. setLayout ( new GridLayout (3, 2)); in f.setLayout(new FlowLayout()); atunci rezultatul va fi in linie

Gestionarul GridBagLayout

import java . awt .*;public class test{

static Frame f;static GridBagLayout gridBag ;static GridBagConstraints gbc ;static void adauga ( Component comp ,int x, int y, int w, int h) {

gbc . gridx = x;gbc . gridy = y;gbc . gridwidth = w;gbc . gridheight = h;gridBag . setConstraints (comp , gbc);f.add( comp );}public static void main ( String args []) {f = new Frame (" Test GridBagLayout ");gridBag = new GridBagLayout ();gbc = new GridBagConstraints ();gbc . weightx = 1.0;gbc . weighty = 1.0;gbc . insets = new Insets (5, 5, 5, 5);f. setLayout ( gridBag );Label mesaj = new Label (" Evidenta persoane ", Label . CENTER );mesaj . setFont ( new Font (" Arial ", Font .BOLD , 24));mesaj . setBackground ( Color . yellow );gbc . fill = GridBagConstraints . BOTH ;adauga (mesaj , 0, 0, 4, 2);Label etNume = new Label (" Nume :");gbc . fill = GridBagConstraints . NONE ;gbc . anchor = GridBagConstraints . EAST ;adauga ( etNume , 0, 2, 1, 1);Label etSalariu = new Label (" Salariu :");

Page 67: Java

adauga ( etSalariu , 0, 3, 1, 1);TextField nume = new TextField ("", 30) ;gbc . fill = GridBagConstraints . HORIZONTAL ;gbc . anchor = GridBagConstraints . CENTER ;adauga (nume , 1, 2, 2, 1);TextField salariu = new TextField ("", 30) ;adauga ( salariu , 1, 3, 2, 1);Button adaugare = new Button (" Adaugare ");gbc . fill = GridBagConstraints . NONE ;adauga ( adaugare , 3, 2, 1, 2);Button salvare = new Button (" Salvare ");gbc . fill = GridBagConstraints . HORIZONTAL ;adauga ( salvare , 1, 4, 1, 1);Button iesire = new Button (" Iesire ");adauga ( iesire , 2, 4, 1, 1);f. pack ();f. show () ;}}Rezultat:

Gruparea componentelorClasa panel

import java . awt .*;

public class test {public static void main ( String args []) {

Frame f = new Frame (" Java Panel ");

Panel intro = new Panel ();intro . setLayout (new GridLayout (1, 3));intro .add(new Label (" Introdu text aici :"));intro .add(new TextField ("", 20) );intro .add(new Button (" Adaugare "));

Panel lista = new Panel ();lista . setLayout (new FlowLayout ());lista .add(new List (10) );

Panel control = new Panel ();control . add(new Button (" Salvare "));

Page 68: Java

control . add(new Button (" Iesire "));control .add(new Button (" Stergere "));f.add(intro , BorderLayout . NORTH );f.add(lista , BorderLayout . CENTER );f.add( control , BorderLayout . SOUTH );f. pack ();f. show () ;}}

Rezultat:

Tratarea evenimentelor - ascultarea evenimentelor a 2 butoane

Clasa forex, unde se initalizeaza cele 2 butoaneimport java . awt .*;import java . awt. event .*;

class forex extends Frame {public forex( String titlu ) {

super (titlu);setLayout (new FlowLayout ());setSize (200 , 200) ;Button b1 = new Button ("OK");Button b2 = new Button (" Cancel ");add (b1);add (b2);bine listener = new bine( this );b1. addActionListener (listener);b2. addActionListener (listener );}}

Clasa bineimport java.awt.event.ActionEvent;import java.awt.event.ActionListener;

Page 69: Java

class bine implements ActionListener {private forex f;public bine( forex f) {this .f = f;}public void actionPerformed ( ActionEvent e) {f. setTitle ("Ati apasat " + e. getActionCommand ());}}

Clasa test, clasa principala mainpublic class test {public static void main ( String args []) {

forex f = new forex ("Java tratarea evenimentelor");f. show () ;}}

Rezultat:

Dupa ce apesi pe "OK" apare:

Dupa ce apesi pe "cancel" apare:

Se modifica scrisul la titlul ferestrei

Page 70: Java

Tratarea evenimentelor in fereastra

import java . awt .*;import java . awt. event .*;

class test extends Frame implements ActionListener {Button ok = new Button ("OK");Button exit = new Button (" Exit ");int n=0;

public test ( String titlu ) {super ( titlu );setLayout (new FlowLayout ());setSize (200 , 100) ;add (ok);add ( exit );ok. addActionListener ( this );exit . addActionListener ( this );}

public void actionPerformed ( ActionEvent e) {if (e. getSource () == exit )System . exit (0); // Terminam aplicatiaif (e. getSource () == ok) {n ++;this . setTitle ("Ati apasat OK de " + n + " ori felicitari!");}}

public static void main ( String args []) {test f = new test (" Test eveniment");f. show () ;}}Rezulat:

Dupa ce apesi OK:

De cate ori apesi pe ok se va modifica numarul de apasari, pentru ca se incrementeaza n++

Page 71: Java

Implementarea interfetei WindowListenerimport java . awt .*;import java . awt. event .*;

class bine extends Frame implements WindowListener {public bine ( String titlu ) {super ( titlu );this . addWindowListener ( this ); }// Metodele interfetei WindowListenerpublic void windowOpened ( WindowEvent e) {}public void windowClosing ( WindowEvent e) {// Terminare programSystem . exit (0);}public void windowClosed ( WindowEvent e) {}public void windowIconified ( WindowEvent e) {}public void windowDeiconified ( WindowEvent e) {}public void windowActivated ( WindowEvent e) {}public void windowDeactivated ( WindowEvent e) {}}

Clasa principala mainpublic class test {

public static void main ( String args []) {bine f = new bine (" Fereastra noua ");f. show () ;}

}

Rezultat:

Extinderea clasei WindowAdapter

Un adaptor este o clasa abstracta care implementeaz˘a o anumit˘a interfat¸˘afara a specifica cod nici unei metode a interfetei.Scopul este sa reduca numarul de linii, pentru a scrie cod,

import java . awt .*;import java . awt. event .*;

class bine extends Frame {public bine ( String titlu ) {super ( titlu ); this . addWindowListener (new Ascultator ());}}class Ascultator extends WindowAdapter {

Page 72: Java

// Suprdefinim metodele care ne intereseazapublic void windowClosing ( WindowEvent e) {System . exit (0);}}

Clasa mainpublic class test {

public static void main ( String args []) {bine f = new bine (" Fereastra noua ");f. show () ;}

}Rezultat:

Folosirea adaptorilor si a claselor anonimeClasa bineimport java . awt .*;import java . awt. event .*;

class bine extends Frame {public bine ( String titlu ) {super ( titlu );setSize (400 , 400) ;this . addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {System . exit (0);}});

final Label label = new Label ("", Label . CENTER );label . setBackground ( Color . green );add ( label , BorderLayout . NORTH );this . addMouseListener (new MouseAdapter () {public void mouseClicked ( MouseEvent e) {label . setText (" Click ... ");Graphics g = bine . this . getGraphics ();g. setColor ( Color . blue );int raza = ( int )( Math . random () * 50);g.fillOval (e.getX () , e.getY () , raza , raza );}});

this.addMouseMotionListener ( new MouseMotionAdapter () {public void mouseMoved ( MouseEvent e) {// Desenam un punct la coordonatele mouse - uluiGraphics g = bine.this.getGraphics ();g. drawOval (e. getX () , e. getY () , 1, 1);}

Page 73: Java

});

this . addKeyListener (new KeyAdapter () {public void keyTyped ( KeyEvent e) {

label. setText ("Ati tastat : " + e. getKeyChar () + "");}});}}

Clasa test, clasa principalapublic class test {

public static void main ( String args []) {bine f = new bine (" Fereastra noua ");f. show () ;}

}

Rezultat:

Daca apesi pe tastatura apare:

Page 74: Java

Structura generala a unei ferestreClasa forex

import java . awt .*;import java . awt. event .*;

class forex extends Frame implements ActionListener {// Constructorulpublic forex( String titlu ) {super ( titlu );// Tratam evenimentul de inchidere a ferestreithis . addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {dispose (); // inchidem fereastra// sau terminam aplicatiaSystem . exit (0);}});

//Eventual , schimbam gestionarul de pozitionaresetLayout(new FlowLayout ());//Adaugam componentele pe suprafata ferestreiButton exit = new Button (" Exit ");add( exit );//Facem inregistrarea claselor listenerexit.addActionListener ( this );//Stabilim dimensiunilepack (); // implicit} //sau explicit//setSize (200 , 200) ;//Implementam metodele interfetelor de tip listenerpublic void actionPerformed ( ActionEvent e) {System . exit (0);}}

Clasa principala (main)

public class test {

public static void main ( String args []) {forex f = new forex (" Fereastra noua ");

f. show () ;}

}Rezultat:

Page 75: Java

Structura generala a unei ferstre

Casa forex, secundara import java . awt .*;import java . awt. event .*;

class forex extends Frame implements ActionListener {// Constructorulpublic forex( String titlu ) {super ( titlu );// Tratam evenimentul de inchidere a ferestreithis . addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {dispose (); // inchidem fereastra// sau terminam aplicatiaSystem . exit (0);}});

//Eventual , schimbam gestionarul de pozitionaresetLayout(new FlowLayout ());//Adaugam componentele pe suprafata ferestreiButton exit = new Button (" Exit ");Button enter = new Button ("Enter");add(enter);add( exit );//Facem inregistrarea claselor listenerexit.addActionListener ( this );//Stabilim dimensiunilepack (); // implicit} //sau explicit//setSize (200 , 200) ;//Implementam metodele interfetelor de tip listenerpublic void actionPerformed ( ActionEvent e) {System . exit (0);}}Clasa principala, main

public class test {

public static void main ( String args []) {forex f = new forex (" Fereastra noua ");

f. show () ;}

}

Rezultat:

Page 76: Java

Folosirea unei ferestre de dialog Clasa Dialog

Clasa secundara

import java . awt .*;import java . awt. event .*;// Fereastra principalaclass sport extends Frame implements ActionListener {

public sport ( String titlu ) {super ( titlu );this. addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {System . exit (0);}});setLayout (new FlowLayout ());setSize (300 , 80);Button b = new Button (" Schimba titlul ");add (b);b. addActionListener (this );

}public void actionPerformed ( ActionEvent e) {FerDialog d = new FerDialog (this , " Dati titlul ", true );String titlu = d. raspuns ;if ( titlu == null )

return ;setTitle ( titlu );}}// Fereastra de dialogclass FerDialog extends Dialog implements ActionListener {public String raspuns = null ;private TextField text ;private Button ok , cancel ;

public FerDialog ( Frame parinte , String titlu , booleanmodala ) {super ( parinte , titlu , modala );this . addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {raspuns = null ;dispose ();}});text = new TextField ("", 30) ;add (text , BorderLayout . CENTER );Panel panel = new Panel ();ok = new Button ("OK");cancel = new Button (" Cancel ");panel .add(ok);panel .add( cancel );add (panel , BorderLayout . SOUTH );pack ();text . addActionListener (this );ok. addActionListener ( this );cancel . addActionListener ( this );show () ;}

Page 77: Java

public void actionPerformed ( ActionEvent e) {Object sursa = e. getSource ();if ( sursa == ok || sursa == text )

raspuns = text . getText ();elseraspuns = null ;dispose ();}

}

Clasa principala, mainpublic class test {

public static void main ( String args []) {sport f = new sport (" Fereastra noua ");

f. show () ;}

}Rezultat:

Dupa ce se apasa pe "Schmba titlul" apare:

apoi, se schimba titlul ferestrei:

Folosirea unei ferestre de dialog din Clasa FileDialogClasa forex, clasa secundaraimport java . awt .*;import java . awt. event .*;import java .io .*;

class forex extends Frame implements ActionListener {public forex ( String titlu ) {super ( titlu );this . addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {

Page 78: Java

System . exit (0);}});

Button b = new Button (" Alege fisier ");add (b, BorderLayout.CENTER);b. addActionListener ( this );}public void actionPerformed ( ActionEvent e) {FileDialog fd = new FileDialog (this , " Alegeti un fisier ",

FileDialog . LOAD );// Stabilim directorul curentfd. setDirectory (".");// Stabilim numele implicitfd. setFile (" TestFileDialog . java ");

// Specificam filtrulfd. setFilenameFilter (new FilenameFilter () {public boolean accept ( File dir , String numeFis ) {return ( numeFis . endsWith (". java "));}});// Afisam fereastra de dialog ( modala )fd. show () ;System . out. println (" Fisierul ales este :" + fd. getFile

());}

}

Clasa principal , mainpublic class test {

public static void main ( String args []) {forex f = new forex (" Fereastra noua ");

f. show () ;}

}

Rezultat:

Dupa ce alegi fisierul din calculator apare in consolo care este fisierul selectat.

Page 79: Java

Daca intorduc setLayout(new FlowLayout()) se afiseaza butonul cu dimensiunile date de programator; setSize(200,100);

Crearea unui meniu

import java . awt .*;import java . awt. event .*;

public class test{public static void main ( String args []) {

Frame f = new Frame (" Test Menu ");MenuBar mb = new MenuBar ();Menu fisier = new Menu (" File ");fisier . add( new MenuItem (" Open "));fisier . add(new MenuItem (" Close "));fisier . addSeparator ();fisier . add( new MenuItem (" Exit "));Menu optiuni = new Menu (" Options ");optiuni . add( new MenuItem (" Copy "));optiuni . add(new MenuItem ("Cut"));optiuni . add(new MenuItem (" Paste "));Menu editare = new Menu (" Edit ");editare . add( new MenuItem (" Undo "));editare . add( optiuni );editare . addSeparator ();editare . add(new CheckboxMenuItem (" Bold "));editare . add( new CheckboxMenuItem (" Italic "));mb. add( fisier );mb. add( editare );f. setMenuBar (mb);f. setSize (200 , 100) ;f. show () ;}}

Rezultat:

Page 80: Java

Tratarea evenimentelor unui meniuimport java . awt .*;import java . awt. event .*;

public class test extends Frame implements ActionListener , ItemListener {public test ( String titlu ) {super ( titlu );MenuBar mb = new MenuBar ();Menu test = new Menu (" File");CheckboxMenuItem check = new CheckboxMenuItem (" Verifica");

test.add(check );test . addSeparator ();test . add( new MenuItem (" Exit"));mb. add( test );setMenuBar (mb);Button btnExit = new Button (" Exit ");add ( btnExit , BorderLayout . SOUTH );setSize (300 , 100) ;show () ;test . addActionListener (this );check . addItemListener ( this );btnExit.addActionListener (this );}public void actionPerformed ( ActionEvent e) {// Valabila si pentru meniu si pentru butonString command = e. getActionCommand ();if ( command . equals (" Exit "))System . exit (0);}public void itemStateChanged ( ItemEvent e) {if (e. getStateChange () == ItemEvent . SELECTED )setTitle ("Sa Verificat !");elsesetTitle ("Nu este verivicat !");}public static void main ( String args []) {test f = new test (" Tratare evenimente");f. show () ;}}

Rezultat:

Page 81: Java

Dupa ce se apasa pe Verificare se afiseaza titlui ferestrei ca sa verificat, si butonul ramane activat.

daca dezactivez butonul Verifica se schimba titlul ferestrei "Nu este verificat!". cand apas pe butonul de jos Exit se inchide fereastra

Folosirea unui meniu de context (popup)Folosirea mous-ului click dreapta

Clasa secundaraimport java . awt .*;import java . awt. event .*;

class sport extends Frame implements ActionListener {// Definim meniul popup al ferestreiprivate PopupMenu popup ;// Pozitia meniului va fi relativa la fereastraprivate Component origin ;public sport ( String titlu ) {super ( titlu );origin = this ;this . addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {System . exit (0);}});this . addMouseListener (new MouseAdapter () {public void mousePressed ( MouseEvent e) {if (e. isPopupTrigger ())popup . show (origin , e. getX () , e. getY ());}public void mouseReleased ( MouseEvent e) {if (e. isPopupTrigger ())

Page 82: Java

popup . show (origin , e. getX () , e. getY ());}});setSize (300 , 300) ;// Cream meniul popuppopup = new PopupMenu (" Options ");popup .add(new MenuItem ("New"));popup .add(new MenuItem (" Edit "));popup . addSeparator ();popup .add(new MenuItem (" Exit "));add ( popup ); // atasam meniul popup ferestreipopup.addActionListener ( this );}public void actionPerformed ( ActionEvent e) {String command = e. getActionCommand ();if ( command . equals (" Exit "))System . exit (0);}}

Clasa main,

public class test{public static void main ( String args []) {

sport f = new sport (" Fereastra PopupMenu ");f. show () ;}}

Rezultat:click dreapta pe mouse si apar butoanele, apasand pe butonul Exit se inchide fereastra.

Folosirea unui meniu de context (popup)Folosirea mous-ului click dreapta + Crearea unui meniu

Clasa secundara,

import java . awt .*;import java . awt. event .*;

class sport extends Frame implements ActionListener {private PopupMenu popup ;private Component origin ;

Page 83: Java

public sport ( String titlu ) {super ( titlu );origin = this ;

MenuBar mb = new MenuBar();Menu fisier = new Menu (" File ");fisier . add( new MenuItem (" Open "));fisier . add(new MenuItem (" Close "));fisier . addSeparator ();fisier . add( new MenuItem (" Exit "));mb.add(fisier);setMenuBar(mb);pack();show () ;

this . addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {System . exit (0);}});this . addMouseListener (new MouseAdapter () {public void mousePressed ( MouseEvent e) {if (e. isPopupTrigger ())popup . show (origin , e. getX () , e. getY ());}public void mouseReleased ( MouseEvent e) {if (e. isPopupTrigger ())popup . show (origin , e. getX () , e. getY ());}});setSize (200 , 200) ;// Cream meniul popuppopup = new PopupMenu (" Options ");popup .add(new MenuItem ("New"));popup .add(new MenuItem (" Edit "));popup . addSeparator ();popup .add( new MenuItem (" Exit "));add ( popup ); // atasam meniul popup ferestreipopup.addActionListener ( this );}public void actionPerformed ( ActionEvent e) {String command = e. getActionCommand ();if ( command . equals (" Exit "))System . exit (0);}}

Clasa principala, mainpublic class test{public static void main ( String args []) {

sport f = new sport (" Fereastra PopupMenu ");f. show () ;}}Rezultat: am inclus in fereastra bara de meniu si folosirea mouse-ului click dreapta.

Page 84: Java

Folosirea clasei Label - Eticheta import java . awt .*;

public class test {public static void main ( String args []) {

Frame f = new Frame (" Label ");Label nord , sud , est , vest , centru ;nord = new Label (" Nord ", Label . CENTER );nord . setForeground ( Color . blue );

sud = new Label ("Sud ", Label . CENTER );sud . setForeground ( Color .red);

vest = new Label (" Vest ", Label . LEFT );vest . setFont ( new Font (" Dialog ", Font .ITALIC , 14));vest . setForeground ( Color .green);

est = new Label ("Est ", Label . RIGHT );est . setFont ( new Font (" Dialog ", Font .ITALIC , 14));

centru = new Label (" Centru ", Label . CENTER );centru . setBackground ( Color . yellow );centru . setFont ( new Font (" Arial ", Font .BOLD , 20));

f.add(nord , BorderLayout . NORTH );f.add(sud , BorderLayout . SOUTH );f.add(est , BorderLayout . EAST );f.add(vest , BorderLayout . WEST );f.add(centru , BorderLayout . CENTER );f. pack ();f. show () ;}}Rezultat:

Page 85: Java

Folosirea clasei ButtonClasa secundara, import java . awt .*;import java . awt. event .*;

class sport extends Frame implements ActionListener {public sport ( String titlu ) {super ( titlu );this . addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {System . exit (0);}});setLayout (null );setSize (200 , 120) ;Button b1 = new Button ("OK");b1. setBounds (30 , 30, 50, 70);b1. setFont (new Font (" Arial ", Font .BOLD , 14));b1. setBackground ( Color . orange );add (b1);Button b2 = new Button (" Cancel ");b2. setBounds (100 , 30, 70, 50);b2. setForeground ( Color . blue );add (b2);b1. addActionListener ( this );b2. addActionListener (this );}// Metoda interfetei ActionListenerpublic void actionPerformed ( ActionEvent e) {String command = e. getActionCommand ();System . out. println (e);if ( command . equals ("OK"))setTitle (" Confirmare !");elseif ( command . equals (" Cancel "))setTitle (" Anulare !");}}

Clasa principala, mainpublic class test{public static void main ( String args []) {sport f = new sport (" Fereastra Button ");f. show () ;}}Rezultat:

Dupa ce apesi pe OK se schimba titlul ferestei in Confirmare!

Page 86: Java

Daca dam click pe Cancel se schimba titlul in Anulare

Folosirea clasei CheckboxClasa secundara, import java . awt .*;import java . awt. event .*;

class sport extends Frame implements ItemListener {private Label label1 , label2 ;private Checkbox cbx1 , cbx2 , cbx3 , cbx4, cbx5, cbx6;public sport ( String titlu ) {super ( titlu );this . addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {System . exit (0);}});setLayout (new GridLayout (8, 2));label1 = new Label (" Ingrediente Pizza :", Label . CENTER );label1 . setBackground ( Color . green );label2 = new Label ("");label2 . setBackground ( Color . pink);cbx1 = new Checkbox (" cascaval ");cbx2 = new Checkbox (" sunca ");cbx3 = new Checkbox (" ardei ");cbx4 = new Checkbox (" masline ");cbx5 = new Checkbox (" rosii ");cbx6 = new Checkbox (" ceapa ");add ( label1 );add ( label2 );add ( cbx1 );add ( cbx2 );add ( cbx3 );add ( cbx4 );add ( cbx5 );add ( cbx6 );setSize (200 , 300) ;cbx1 . addItemListener ( this );cbx2 . addItemListener ( this );cbx3 . addItemListener (this );cbx4 . addItemListener ( this );

Page 87: Java

cbx5 . addItemListener ( this );cbx6 . addItemListener (this );}// Metoda interfetei ItemListenerpublic void itemStateChanged ( ItemEvent e) {StringBuffer ingrediente = new StringBuffer ();if ( cbx1 . getState () == true )ingrediente . append (" cascaval, ");if ( cbx2 . getState () == true )ingrediente . append (" sunca, ");if ( cbx3 . getState () == true )ingrediente . append (" ardei, ");if ( cbx4 . getState () == true )ingrediente . append (" masline, ");if ( cbx5 . getState () == true )ingrediente . append (" rosii, ");if ( cbx6 . getState () == true )ingrediente . append (" ceapa, ");label2 . setText ( ingrediente . toString ());}}Clasa principala mainpublic class test{public static void main ( String args []) {sport f = new sport (" Fereastra cu ingrediente ");f. show () ;}}

Rezultat:cand selectez un ingredient apare in casuta colorata cu roz

Folosirea clasei CheckboxGroupClasa secundara

Page 88: Java

import java . awt .*;import java . awt. event .*;

class sport extends Frame implements ItemListener {private Label label1 , label2 ;private Checkbox cbx1 , cbx2 , cbx3 ;private CheckboxGroup cbg ;public sport ( String titlu ) {super ( titlu );this . addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {System . exit (0);}});setLayout ( new GridLayout (5, 1));label1 = new Label (" Alegeti postul TV", Label . CENTER );label1 . setBackground ( Color . orange );label2 = new Label ("", Label . CENTER );label2 . setBackground ( Color . lightGray );cbg = new CheckboxGroup ();cbx1 = new Checkbox ("HBO", cbg , false );cbx2 = new Checkbox (" Discovery ", cbg , false );cbx3 = new Checkbox ("MTV", cbg , false );add ( label1 );add ( label2 );add ( cbx1 );add ( cbx2 );add ( cbx3 );setSize (200 , 200) ;cbx1 . addItemListener ( this );cbx2 . addItemListener ( this );cbx3 . addItemListener ( this );}// Metoda interfetei ItemListenerpublic void itemStateChanged ( ItemEvent e) {Checkbox cbx = cbg. getSelectedCheckbox ();if (cbx != null )label2 . setText (cbx. getLabel ());}}

Clasa principala mainpublic class test{public static void main ( String args []) {sport f = new sport (" CheckboxGroup ");f. show () ;}}

Rezultat:

Page 89: Java

Folosirea clasei ChoiceClasa bine, secundaraimport java . awt .*;import java . awt. event .*;

class sport extends Frame implements ItemListener {private Label label ;private Choice culori ;public sport ( String titlu ) {super ( titlu );this . addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {System . exit (0);}});

setLayout (new GridLayout (4, 1));label = new Label (" Alegeti culoarea ");label . setBackground ( Color .red);culori = new Choice ();culori . add(" Rosu ");culori . add(" Verde ");culori . add(" Albastru ");culori . select (" Rosu ");add ( label );add ( culori );setSize (200 , 100) ;culori . addItemListener ( this );}// Metoda interfetei ItemListenerpublic void itemStateChanged ( ItemEvent e) {switch ( culori . getSelectedIndex ()) {case 0:label . setBackground ( Color .red);break ;case 1:label . setBackground ( Color . green );

Page 90: Java

break ;case 2:label . setBackground ( Color . blue );}}}

Clasa principala, main public class test{public static void main ( String args []) {sport f = new sport (" Choice ");f. show ();}}Rezultat:

se poate selecta doar o singura optiune din lista derulanta, cand ramane selectata optiune se schimba culoarea.

Folosirea clasei List

Clasa bine:import java . awt .*;import java . awt. event .*;

class sport extends Frame implements ItemListener {private Label label ;private List culori ;public sport ( String titlu ) {super ( titlu );this . addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {System . exit (0);}});

setLayout (new GridLayout (2, 1));label = new Label (" Alegeti culoarea ", Label.CENTER);label . setBackground ( Color .red);culori = new List (3);culori . add(" Rosu ");culori . add(" Verde ");culori . add(" Albastru ");

Page 91: Java

culori . select (3);add ( label );add ( culori );setSize (200 , 100) ;culori . addItemListener ( this );}// Metoda interfetei ItemListenerpublic void itemStateChanged ( ItemEvent e) {switch ( culori . getSelectedIndex ()) {case 0:label . setBackground ( Color .red);break ;case 1:label . setBackground ( Color . green );break ;case 2:label . setBackground ( Color . blue );}}}

Clasa principala mainpublic class test{public static void main ( String args []) {sport f = new sport (" Fereastra List ");f. show () ;}}Rezultat: cand se selecteaza o singura optiune

Folosirea clasei ScrollBarClasa secundara,import java . awt .*;import java . awt. event .*;

class sport extends Frame implements AdjustmentListener {private Scrollbar scroll ;private Label valoare ;public sport( String titlu ) {super ( titlu );this . addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {System . exit (0);}});

Page 92: Java

setLayout (new GridLayout (2, 1));valoare = new Label ("", Label . CENTER );valoare . setBackground ( Color .green);scroll = new Scrollbar ( Scrollbar . HORIZONTAL , 0, 1, 0, 101) ;add ( valoare );add ( scroll );setSize (200 , 80);scroll . addAdjustmentListener (this );}public void adjustmentValueChanged ( AdjustmentEvent e) {valoare . setText ( scroll . getValue () + " %");}}Clasa principala main public class test{public static void main ( String args []) {sport f = new sport (" Fereastra ScrollBar ");f. show () ;}}Rezultat:

Clasa ScrollPaneFolosirea clasei ScrollPane

Clasa secundaraimport java . awt .*;import java . awt. event .*;

class sport extends Frame {private ScrollPane sp;private List list ;private Label label;public sport ( String titlu ) {super ( titlu );

this . addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {System . exit (0);}});list = new List (7);list . add(" Luni ");list . add(" Marti ");list . add(" Miercuri ");list . add(" Joi");list . add(" Vineri ");list . add(" Sambata ");list . add(" Duminica ");list . select (1);

Page 93: Java

sp = new ScrollPane ( ScrollPane . SCROLLBARS_ALWAYS );sp. add( list );add (sp , BorderLayout . CENTER );setSize (100 , 100) ;}}Clasa main, public class test{public static void main ( String args []) {sport f = new sport (" Fereastra ScrollPane ");f. show () ;}}Rezultat:

Daca voi incroduce cod:setLayout(new FlowLayout());label = new Label ("Zilele saptamanii", Label.CENTER);label.setBackground(Color.green);add(label);Rezulta:

Folosirea clasei TextFieldClasa secundara, import java . awt .*;import java . awt. event .*;

class sport extends Frame implements TextListener {private TextField nume , parola ;private Label acces ;private static final String UID = "Duke", PWD = "java" ;public sport( String titlu ) {

Page 94: Java

super ( titlu );this . addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {System . exit (0);}});

setLayout (new GridLayout (3, 1));setBackground ( Color . green);nume = new TextField ("", 30) ;parola = new TextField ("", 10) ;parola.setEchoChar ('*');

Panel p1 = new Panel ();p1. setLayout ( new FlowLayout ( FlowLayout . LEFT ));p1. add( new Label (" Nume :"));p1. add( nume );Panel p2 = new Panel ();p2. setLayout ( new FlowLayout ( FlowLayout . LEFT ));p2. add( new Label (" Parola :"));p2. add( parola );acces = new Label (" Introduceti numele si parola !", Label .CENTER );add ( acces );add (p1);add (p2);

setSize (350 , 100) ;nume . addTextListener ( this );parola . addTextListener ( this );}//Metoda interfetei TextListenerpublic void textValueChanged ( TextEvent e) {if ( nume . getText (). length () == 0 || parola . getText (). length () == 0) {acces . setText ("");return ;}if ( nume . getText (). equals ( UID) && parola . getText (). equals (PWD))acces . setText (" Acces permis !");elseacces . setText (" Acces interzit !");}}

Clasa principala, main public class test{public static void main ( String args []) {sport f = new sport (" TextField ");f. show () ;}}Rezultat:

Page 95: Java

Daca numele este Duke si parola java atunci Accesul va fi permis

Folosirea clasei TextAreaClasa secundaraimport java.awt.*;import java.awt.event.*;import java.io.*;

class sport extends Frame implements TextListener , ActionListener {private TextArea text ;private TextField nume ;private Button salvare ;public sport ( String titlu ) {super ( titlu );

this.addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {System.exit (0);}});

setBackground ( Color.lightGray );text = new TextArea ("", 30, 10, TextArea.SCROLLBARS_VERTICAL_ONLY );nume = new TextField ("", 12) ;salvare = new Button (" Salveaza text ");salvare.setEnabled ( false );

Panel fisier = new Panel ();fisier.add( new Label (" Fisier :"));fisier.add( nume );add (fisier, BorderLayout.NORTH );add (text, BorderLayout.CENTER );add ( salvare, BorderLayout.SOUTH );setSize (300 , 200) ;text.addTextListener (this );salvare.addActionListener ( this );}// Metoda interfetei TextListenerpublic void textValueChanged ( TextEvent e) {if ( text.getText ().length () == 0 || nume.getText ().length () == 0)

Page 96: Java

salvare.setEnabled (false );elsesalvare.setEnabled ( true );}

//Metoda interfetei ActionListenerpublic void actionPerformed ( ActionEvent e) {String continut = text.getText ();try {PrintWriter out = new PrintWriter ( new FileWriter ( nume.getText ()));out.print ( continut );out.close ();text.requestFocus ();}catch ( IOException ex) {ex.printStackTrace ();}}}

Clasa principala, mainpublic class test{public static void main ( String args []) {sport f = new sport (" TextArea ");f. show () ;}}

Rezultat:

Metoda paintSupradefinirea metodei paint

Clasa bineimport java . awt .*;

class bine extends Frame {public bine( String titlu ) {super ( titlu );setSize (200 , 100) ;}public void paint ( Graphics g) {// Apelam metoda paint a clasei Framesuper . paint (g);g. setFont (new Font (" Arial ", Font .BOLD , 18));g. setColor ( Color .red );

Page 97: Java

g. drawString (" Aplicatie DEMO " , 5, 50);}}Clasa principala, mainpublic class test{

public static void main (String [] args){bine f = new bine ("Fereastra paint");f.show () ;

}}Rezultat:

Clasa Canvas - Suprafete de desenareFolosirea clasei Canvas

Clasa sport , secundaraimport java . awt .*;import java . awt. event .*;

class sport extends Canvas {Dimension dim = new Dimension (100 , 100) ;private Color color [] = { Color .red , Color . blue };private int index = 0;public sport () {this . addMouseListener (new MouseAdapter () {public void mouseClicked ( MouseEvent e) {index = 1 - index ;repaint ();}});}public void paint ( Graphics g) {g. setColor ( color [ index ]);g. drawRect (0, 0, dim .width , dim. height );g. setColor ( color [1 - index ]);g. fillOval (0, 0, dim .width , dim. height );}public Dimension getPreferredSize () {return dim ;}}

Clasa bine, secundara, sau poate sa fie inclusa si in clasa sportimport java.awt.*;import java.awt.BorderLayout;import java.awt.Frame;

class bine extends Frame {public bine ( String titlu ) {

Page 98: Java

super ( titlu );setSize (200 , 200) ;add(new sport () , BorderLayout.CENTER );}}Clasa principala mainpublic class test{

public static void main (String [] args){new bine ("Canvas").show () ;}

}Rezultat:

cand se da click pe cerc se schimba in rosu

Clasa FontLucrul cu fonturi

Clasa secundara,import java . awt .*;

class sport extends Canvas {private Font [] fonturi ;Dimension canvasSize = new Dimension (400 , 400) ;public sport () {fonturi = GraphicsEnvironment.getLocalGraphicsEnvironment ().getAllFonts ();canvasSize.height = (1 + fonturi.length )*20;}public void paint ( Graphics g) {String nume ;for (int i=0; i < fonturi . length ; i ++) {nume = fonturi [i]. getFontName ();g.setFont (new Font (nume , Font .PLAIN , 14));g.drawString (i + ". " + nume , 20, (i + 1) * 20);}

Page 99: Java

}public Dimension getPreferredSize () {return canvasSize ;}}

Clasa secundaraimport java.awt.BorderLayout;import java.awt.Frame;import java.awt.ScrollPane;

class bine extends Frame {public bine ( String titlu ) {super ( titlu );ScrollPane sp = new ScrollPane ();sp. setSize (400 , 400) ;sp. add( new sport ());add (sp , BorderLayout . CENTER );pack ();}}Clasa mainpublic class test{

public static void main (String [] args){new bine ("Font").show () ;}

}Rezultat:apar toate fondurile

Folosirea clasei FontMetricsClasa secundraimport java . awt .*;

class sport extends Canvas {

Page 100: Java

Dimension canvasSize = new Dimension (800 , 100) ;private String [] zile = { " Luni ", " Marti ", " Miercuri ", " Joi"," Vineri ", " Sambata ", " Duminica "};private String [] luni = { " Ianuarie ", " Februarie ", " Martie ", " Aprilie ","Mai", " Iunie ", " Iulie ", " August ", " Septembrie "," Octombrie ", " Noiembrie ", " Decembrie "};public void paint ( Graphics g) {FontMetrics fm;int x,y;String etZile = " Zilele saptamanii :",etLuni = " Lunile anului :", text ;

//Alegem un font si aflam metrica sag. setFont ( new Font (" Arial ", Font .BOLD , 20));fm = g. getFontMetrics ();x = 0;y = fm. getHeight ();g. drawString (etZile , x, y);x += fm. stringWidth ( etZile );for (int i=0; i < zile . length ; i ++) {text = zile [i];if (i < zile . length - 1)text += ", ";g. drawString (text , x, y);x += fm. stringWidth ( text );}//Schimbam fontulg. setFont (new Font (" Dialog ", Font .PLAIN , 14));fm = g. getFontMetrics ();x = 0;y += fm. getHeight ();g. drawString (etLuni , x, y);x += fm. stringWidth ( etLuni );for (int i=0; i < luni . length ; i ++) {text = luni [i];if (i < luni . length - 1)text += ", ";g. drawString (text , x, y);x += fm. stringWidth ( text );}}public Dimension getPreferredSize () {return canvasSize ;}}

Clasa bine,import java.awt.BorderLayout;import java.awt.Frame;

class bine extends Frame {public bine ( String titlu ) {super ( titlu );add ( new sport () , BorderLayout . CENTER );pack ();}

Page 101: Java

}Clasa principala main,public class test{

public static void main (String [] args){bine f = new bine ("FontMetrics");f.show () ;}

}Rezultat:

Folosirea clasei ColorClasa Color

Clasa secundara, import java . awt .*;import java . awt. event .*;

class sport extends Canvas {public Color color = new Color (0, 0, 0, 255) ;Dimension canvasSize = new Dimension (150 , 50) ;public void paint ( Graphics g) {g. setColor ( Color . black );g. setFont (new Font (" Arial ", Font .BOLD , 12));String text = "";text += " R=" + color . getRed ();text += " G=" + color . getGreen ();text += " B=" + color . getBlue ();text += " A=" + color . getAlpha ();g. drawString (text , 0, 30);g. setColor ( color );g. fillRect (0, 0, canvasSize .width , canvasSize . height );}

public Dimension getPreferredSize () {return canvasSize ;}}clasa secundara bine, import java.awt.BorderLayout;import java.awt.Color;import java.awt.Frame;import java.awt.GridLayout;import java.awt.Panel;import java.awt.Scrollbar;import java.awt.event.AdjustmentEvent;import java.awt.event.AdjustmentListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;

class bine extends Frame implements AdjustmentListener {

Page 102: Java

private Scrollbar rValue , gValue , bValue , aValue ;private sport culoare ;

public bine ( String titlu ) {super ( titlu );this . addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {System . exit (0);}});Panel rgbValues = new Panel ();rgbValues . setLayout ( new GridLayout (4, 1));rValue = new Scrollbar ( Scrollbar . HORIZONTAL , 0, 1, 0, 256) ;rValue . setBackground ( Color .red);gValue = new Scrollbar ( Scrollbar . HORIZONTAL , 0, 1, 0, 256) ;gValue . setBackground ( Color . green );bValue = new Scrollbar ( Scrollbar . HORIZONTAL , 0, 1, 0, 256) ;bValue . setBackground ( Color . blue );aValue = new Scrollbar ( Scrollbar . HORIZONTAL , 0, 1, 0, 256) ;aValue . setValue (255) ;aValue.setBackground ( Color.lightGray );rgbValues .add ( rValue );rgbValues .add ( gValue );rgbValues .add ( bValue );rgbValues .add ( aValue );rgbValues . setSize (200 , 100) ;add ( rgbValues , BorderLayout . CENTER );culoare = new sport ();add ( culoare , BorderLayout . NORTH );pack ();rValue . addAdjustmentListener ( this );gValue . addAdjustmentListener ( this );bValue . addAdjustmentListener ( this );aValue . addAdjustmentListener ( this );}public void adjustmentValueChanged ( AdjustmentEvent e) {int r = rValue . getValue ();int g = gValue . getValue ();int b = bValue . getValue ();int a = aValue . getValue ();Color c = new Color (r, g, b, a);culoare . color = c;culoare . repaint ();}}Clasa principala mainpublic class test {public static void main (String args []) {

bine f = new bine ("Color");f. show () ;}}Rezultat"

Page 103: Java

Cum modifici bara de derulare si face o culoare noua

Tiparirea unei componenteIn exemplul urmator vom defini un obiect care are aceea si reprezentarepe ecran cat ¸si la imprimanta (un cerc circumscris unui patrat, insotite deun text) ¸si vom tipari obiectul respectiv.

Clasa seecundara bine,import java .io .*;import java . awt .*;import java . awt. event .*;import java . awt. print .*;

class bine extends Canvas implements Printable {Dimension d = new Dimension (400 , 400) ;public Dimension getPreferredSize () {return d;}public void paint ( Graphics g) {g. drawRect (200 , 200 , 100 , 100) ;g. drawOval (200 , 200 , 100 , 100) ;g. drawString (" Hello ", 200 , 200) ;}public int print ( Graphics g, PageFormat pf , int pi)throws PrinterException {if (pi >= 1)return Printable . NO_SUCH_PAGE ;paint (g);g. drawString (" Numai la imprimanta ", 200 , 300) ;return Printable . PAGE_EXISTS ;}}

Clasa secundra forex,

import java.awt.BorderLayout;import java.awt.Button;import java.awt.FlowLayout;import java.awt.Frame;

Page 104: Java

import java.awt.Panel;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.print.PrinterException;import java.awt.print.PrinterJob;

class forex extends Frame implements ActionListener {private bine plansa = new bine ();private Button print = new Button (" Print ");

public forex ( String titlu ) {super ( titlu );addWindowListener (new WindowAdapter () {public void windowClosing ( WindowEvent e) {System . exit (0);}});add (plansa , BorderLayout . CENTER );Panel south = new Panel ();south . setLayout (new FlowLayout ( FlowLayout . CENTER ));south .add( print );add (south , BorderLayout . SOUTH );print . addActionListener ( this );pack ();}public void actionPerformed ( ActionEvent e) {// 1. Crearea unei sesiuni de tiparirePrinterJob printJob = PrinterJob . getPrinterJob ();

// 2. Stabilirea obiectului ce va fi tiparitprintJob . setPrintable ( plansa );

// 3. Initierea dialogului cu utilizatorulif ( printJob . printDialog ()) {try {// 4. Tiparirea efectivaprintJob . print ();} catch ( PrinterException ex) {System . out. println (" Exceptie la tiparire !");ex. printStackTrace ();}}}}Clasa principala main public class test {public static void main ( String args []) throws Exception {

forex f = new forex ("Tiparire");f. show () ;}}

Rezultat:

Page 105: Java

Folosirea ferestrelor interneClasa secundara sport, import javax . swing .*;import java . awt .*;

class sport extends JFrame {public sport ( String titlu ) {

super ( titlu );setSize (300 , 200) ;setDefaultCloseOperation ( JFrame . EXIT_ON_CLOSE );forex fin1 = new forex ();fin1 . setVisible ( true );forex fin2 = new forex ();fin2 . setVisible ( true );JDesktopPane desktop = new JDesktopPane ();desktop .add( fin1 );desktop .add( fin2 );setContentPane ( desktop );fin2 . moveToFront ();}}Clasa secundara forex.import java.awt.Dimension;

import javax.swing.JInternalFrame;

class forex extends JInternalFrame {static int n = 0; // nr. de ferestre internestatic final int x = 30, y = 30;public forex() {

Page 106: Java

super (" Document #" + (++ n), true , // resizabletrue , // closabletrue , // maximizabletrue );// iconifiablesetLocation (x*n, y*n);setSize ( new Dimension (200 , 100) );}}

clasa mainpublic class test {public static void main ( String args []) {new sport (" Test ferestre interne "). show () ;}}Rezultat;

Facilitati oferite de clasa JComponentClasa JComponent

Clasa secundar,import javax . swing .*;import javax . swing . border .*;import java . awt .*;import java . awt. event .*;

class sport extends JFrame {public sport ( String titlu ) {super ( titlu );getContentPane ().setLayout (new FlowLayout ());setDefaultCloseOperation ( JFrame . EXIT_ON_CLOSE );// Folosirea chenarelorBorder lowered , raised ;TitledBorder title ;lowered = BorderFactory.createLoweredBevelBorder ();raised = BorderFactory.createRaisedBevelBorder ();title = BorderFactory.createTitledBorder (" Borders - titlui chenarului ");final JPanel panel = new JPanel ();panel.setPreferredSize ( new Dimension (400 ,200) );panel.setBackground ( Color.green );panel.setBorder ( title );getContentPane().add( panel );

Page 107: Java

JLabel label1 = new JLabel (" Lowered ");label1.setBorder ( lowered );panel.add( label1 );JLabel label2 = new JLabel (" Raised ");label2.setBorder ( raised );panel.add( label2 );// Controlul opacitatiiJButton btn1 = new JButton (" Opaque ");btn1.setOpaque ( true ); // implicitpanel .add( btn1 );JButton btn2 = new JButton (" Transparent ");btn2.setOpaque ( false );panel.add( btn2 );// ToolTipslabel1 . setToolTipText (" Eticheta coborata ");label2 . setToolTipText (" Eticheta ridicata ");btn1 . setToolTipText (" Buton opac ");// Textul poate fi HTMLbtn2 . setToolTipText ("<html ><b> Apasati <font color =red >F2</ font > " + " cand butonul are <u> focusul </u>");// Asocierea unor actiuni ( KeyBindings )/* Apasarea tastei F2 cand focusul este pe butonul al doilea va determina schimbarea culorii panelului */btn2.getInputMap ().put( KeyStroke . getKeyStroke ("F2")," schimbaCuloare ");btn2.getActionMap ().put(" schimbaCuloare ", new AbstractAction () {private Color color = Color.yellow ;public void actionPerformed ( ActionEvent e) {panel.setBackground ( color );color = ( color == Color. yellow ? Color.green : Color .yellow);}});pack ();}}Clasa principala main public class test {public static void main ( String args []) {new sport (" Facilitatile JComponent "). show () ;}}Rezultat:

Page 108: Java

Cand se apasa cu mausul pe "Transparent" si apoi pe F2 se schimba culoarea in galben:

Afisarea unui chenar intr-o ferastra Swing import javax . swing .*;import javax . swing . border .*;import java . awt .*;import java . awt. event .*;

class sport extends JFrame {public sport ( String titlu ) {super ( titlu );getContentPane ().setLayout (new FlowLayout ());setDefaultCloseOperation ( JFrame . EXIT_ON_CLOSE );// Folosirea chenarelor

TitledBorder title ;title = BorderFactory.createTitledBorder (" Borders - titlui chenarului ");final JPanel panel = new JPanel ();panel.setPreferredSize ( new Dimension (200 ,100) );panel.setBackground ( Color.green );panel.setBorder ( title );getContentPane().add( panel );}

Page 109: Java

public static void main ( String args []) {new sport (" Facilitatile JComponent "). show () ;}}Rezultat:

Folosirea mai multor modele pentru o componentaimport javax . swing .*;import javax . swing . border .*;import java . awt .*;import java . awt. event .*;

class forex extends JFrame implements ActionListener {String data1 [] = {" rosu ", " galben ", " albastru "};String data2 [] = {"red", " yellow ", " blue "};int tipModel = 1;JList lst;ListModel model1 , model2 ;

public forex ( String titlu ) {super ( titlu );setDefaultCloseOperation ( JFrame . EXIT_ON_CLOSE );

// Lista initiala nu are nici un modellst = new JList ();getContentPane ().add(lst , BorderLayout.CENTER );

// La apasara butonului schimbam modelulJButton btn = new JButton (" Schimba modelul ");getContentPane ().add(btn , BorderLayout.SOUTH );btn.setBackground ( Color.green );btn . addActionListener ( this );

//Cream obiectele corespunzatoare celor doua modelemodel1 = new Model1 ();model2 = new Model2 ();lst . setModel ( model1 ) ;pack ();}public void actionPerformed ( ActionEvent e) {if ( tipModel == 1) {lst . setModel ( model2 ) ;tipModel = 2;}else {lst .setModel ( model1 ) ;tipModel = 1;

Page 110: Java

}}

// Clasele corespunzatoare celor doua modeleclass Model1 extends AbstractListModel {public int getSize () {

return data1 . length ;}public Object getElementAt ( int index ) {return data1 [ index ];}}

class Model2 extends AbstractListModel {public int getSize () {return data2.length ;}public Object getElementAt ( int index ) {return data2 [ index ];}}

public static void main ( String args []) {new forex (" Test Model "). show () ;}}

Rezultat: