Laborator 11
Laborator 11
1
Contents
Laborator11 2
1 Liste de select ie JList 2
1.1 Crearea unui model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Init ializarea unei liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Selectarea intrarilor dintr-o lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Adaugarea si stergerea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Formatarea celulelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.6 Jlist API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Probleme de laborator 4
2.1 Problema 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Problema 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Problema 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4 Problema 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.5 Problema 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.6 Problema 6 (bonus) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1
http://www.google.ro/
1
Laborator11
Programare Orientata pe Obiecte: Laborator 11
1 Liste de select ie JList
Un obiect de tip JList prezinta utilizatorului un grup de item-uri, asate n una sau mai multe coloane
pentru a oferi acestuia posibilitatea de a alege.
1.1 Crearea unui model
Exista trei metode prin care se poate crea un model de lista:
DefaultListModel - aproape totul este gestionat de model pentru a usura munca programatorului
AbstractListModel - utilizatorul gestioneaza datele si invoca metodele de act ionare. Pentru
aceasta abordare, programatorul trebuie sa subclaseze AbstractListModel si sa implementeze
metodele getSize() si getElementAt() mostenite din interfat a ListModel
ListModel - utilizatorul gestioneaza totul
1.2 Init ializarea unei liste
Iata un exemplu de cod care creeaza si seteaza parametrii unei liste:
list = new JList( data ); //data e de tipul Object[ ]
list.setSelectionMode( ListSelectionModel.SINGLE INTERVAL SELECTION );
list.setLayoutOrientation( JList.HORIZONTAL WRAP );
list.setVisibleRowCount( -1 );
...
JScrollPane listScroller = new JScrollPane( list );
listScroller.setPreferredSize( new Dimension( 250, 80 ) );
Codul paseaza un vector catre constructorul listei. Vectorul cont ine siruri de caractere, care n exemplul
de fat a reprezinta nume de baiet i.
Alt i constructori pentru JList permit init ializarea listei dintr-un obiect de tip Vector sau dintr-un
obiect de tipul ListModel. Daca init ializarea se face dintr-un obiect de tip Vector sau dintr-un vector
clasic, constructorul implicit creeaza un model standard de lista. Modelul standard este imuabil - nu
se pot adauga, sterge, nlocui intrari n lista. Pentru a crea o lista a carei intrari pot modicate
individual, se poate seta modelul listei catre o instant a variabila, cum ar DefaultListModel. Modelul
unei liste se poate seta cand se creeaza lista sau prin apelul de metoda setModel().
Apelul setSelectionMode() specica cate intrari din lista poate selecta ultilizatorul si daca acestea
trebuie sa e sau nu contigue.
Apelul setLayoutOrientation() permite asarea datelor n mai multe coloane. Valoarea
JList.HORIZONTAL WRAP specica faptul ca lista ar trebui sa si aseze intrarile de la stanga
la dreapta nainte de a trece la o noua linie. O alta valoare posibila este JList.VERTICAL WRAP,
care specica asarea datelor de sus pana jos (ca de obicei) nainte de a trece la o coloana noua.