Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Java
Jak použít JList?
9. února 2001, 00.00 | Popis komponenty JList knihovny SWING jazyka Java. Krok za krokem vám ukážeme použití této komponenty včetně ukázkového zdrojového kódu.
JList je komponenta knihovny SWING, která slouží k zobrazení seznamu. Použití této komponenty je poměrně univerzální.
Nejprve si vysvětlíme, jak tuto komponentu naplnit. Jednou z možností je předat jí při vytváření odkaz na objekt implementující interface ListModel, tento objekt obsahuje položky, které by se měly v seznamu objevit. Vytvořme například třídu MujListModel následovně:
|
Pracujeme se seznamem libovolných objektů. Tyto objekty se všechny objeví v našem JListu. Důležité je implementovat metody getElementAt a getSize, aby bylo jasné, jaké objekty musejí být zobrazeny a kolik jich je.
Příklad použití by mohl být například následující:
|
- JList list
- Object value
- int index
- boolean isSelected
- boolean hasFocus
Význam uvedených parametrů je poměrně zřejmý, list je celý seznam, value je hodnota v příslušném řádku, její index v seznamu, isSelected je true, pokud je hodnota vybrána a hasFocus nabývá true, jestliže má hodnota focus. Nyní bychom v závislosti na těchto parametrech měli vytvořit objekt typu JLabel a nastavit u něj barvu pozadí a další vlastnosti (podle toho, jestli je vybrán atd.).
Nastavování všech jeho vlastností by mohlo být nepohodlné, my můžeme využít toho, že třída DefaultListCellRenderer již tuto metodu implementuje a tak si ušetřit práci. Zavoláme metodu předka a jediné, co změníme, bude text v komponentě typu JLabel. Vše si ukážeme na zmiňovaném příkladu s lidmi.
|
V uvedeném příkladě bude zobrazeno pouze příjmení. Zde se nabízí použít větvení a na základě hodnoty nějaké proměnné zobrazit právě ty údaje, které jsou požadovány.
Zbytek programu by mohl vypadat například následovně:
|
Doufám, že mi čtenář odpustí, že rodné číslo není číslo, ale řetězec. Kompletní program je Seznam2.java.
V hotových programech se většinou setkáme s tím, že JList obsahuje posuvníky (scrollbary), při používání SWINGu se tento problém řeší tak, že JList umístíme na objekt typu JScrollBar. V následujícím příkladě je úmyslně celé okno programu velmi malé, aby byly posuvníky dobře vidět. Řádek
this.getContentPane().add(list);
nahradíme dvěma řádky:
JScrollPane scrollPane = new JScrollPane(list);
this.getContentPane().add(scrollPane);
Celý příklad Seznam3.java je vidět na obrázku.
Více o použití komponent z knihovny SWING snad zase někdy příště.
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007