JComboBox
Komponenta JComboBox představuje rozbalovací seznam. Seznam je tvořen jednotlivými položkami setříděných podle předem známého klíče. Viditelná je pouze jedna řádka, po kliknutí na šipku se seznam rozbalí a umožní zvolit kliknutím některou z položek seznamu. Použití je podobné jako v případě radio buttonů, komponenta je vhodná pro výběr z většího množství variant. V takovém případě při použití radio buttonů vznikají okna příliš velkých rozměrů, na které se pak již nevejdou další komponenty. Combo boxy mohou mít poměrně odlišný vzhled i způsob práce s nimi. Jejich položky mohou být editovatelné popř. lze položky přidávat i za běhu programu. My se budeme zabývat nejběžnější variantou-needitovatelnými combo boxy. Položky combo boxu jsou číslovány, lze k nimi přistupovat za použití indexu; první položka má index 0.Metoda | Popis |
addItem(Object o) | Přidání položky do seznamu na poslední pozici. |
insertItem(Object o, int position) | Přidání položky do seznamu na uvedenou pozici. |
getItem() | Získání položky na požadované pozici. |
getSelectedItem() | Získání označené položky. |
removeAllItems() | Odstranění všech položek seznamu. |
removeItemAt(int position) | Odstranění požadované položky seznamu. |
getItemCount() | Počet položek seznamu. |
getSelectedIndex() | Index označené položky. |
setSelectedIndex() | Označení požadované položky seznamu. |
setEditable(boolean b) | Nastavení, zda položky combo boxu mohou být editovatelné. |
Třída má k dispozici několik konstruktorů
JComboBox();
JComboBox(Object o);
JComboBox(BVector v);
První konstruktor vytvoří prázdný combo box, druhý naplněný položkami představovanými objekty třídy Object, třetí naplněný položkami z dynamické datové struktury vector. Přehled často používaných metod komponenty JcomboBox. Při práci s combo boxem je nejčastěji používáno rozhran ActionListener. Metoda actionPerformed() je vyvolána v okamžiku, kdy uživatel zvolí některou z položek combo boxu nebo po editaci některé položky stiskne klávesu Enter. Upravíme příklad pracující s radio buttony, místo radiobuttonu použijeme combo box. Ukázka zdrojového kódu.
public class Comboboxy extends JFrame
{
private JLabel l;
private JComboBox c;
public Comboboxy(int vyska, int sirka) {
this.setSize(vyska, sirka);
this.setTitle("ComboBox");
c=new JComboBox();
c.addItem("Prvni");
c.addItem("Druhy");
c.addItem("Treti");
l=new JLabel();
this.getContentPane().add(c);
this.getContentPane().add(l);
this.setLayout(new FlowLayout());
c.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
cVyber(e);
}
});
this.setVisible(true);
}
public void cVyber(ActionEvent e)
{
l.setText(c.getSelectedItem().toString());
}
}
Autor: Filip Koval