Java: Checkbox a RadioButton
Z MiS
				
				
				(Rozdíly mezi verzemi)
				
																
				
				
								
				| m (Přidána kategorie Category:Stránky s obrázky.) | m (Doplněno upozornění, že initComponents() musí být v konstruktoru první().) | ||
| Řádka 22: | Řádka 22: | ||
| * <code>Kód, který se netýká práce s checkboxem a radio buttonem.</code> | * <code>Kód, který se netýká práce s checkboxem a radio buttonem.</code> | ||
| * <code style="color:brown">'''Kód, který musíme napsat my'''</code> | * <code style="color:brown">'''Kód, který musíme napsat my'''</code> | ||
| − | * <code style="color:brown">''Kód, který vytvoří GUI Designer  | + | * <code style="color:brown">''Kód, který vytvoří GUI Designer''</code> | 
|   public class HlavniOkno extends JFrame { |   public class HlavniOkno extends JFrame { | ||
| Řádka 35: | Řádka 35: | ||
|       public HlavniOkno() { |       public HlavniOkno() { | ||
| − |           initComponents(); | + |           initComponents();   | 
| + |          ''// Metoda initComponents() vytvoří prvky GUI,''  | ||
| + |          ''//  musí se tedy volat první!'' | ||
| + | |||
| + |          ''// Nastavení počátečního zatržení:'' | ||
|           <span style="color:brown">'''this.cbSplneno.setSelected(true);'''</span> ''// Checkbox bude na začátku zatržen!'' |           <span style="color:brown">'''this.cbSplneno.setSelected(true);'''</span> ''// Checkbox bude na začátku zatržen!'' | ||
| − | |||
|           ''// Aktivní bude přepínací tlačítko (radiobutton) <code>Ne</code>.'' |           ''// Aktivní bude přepínací tlačítko (radiobutton) <code>Ne</code>.'' | ||
| + |          <span style="color:brown">'''this.rbPovinne.setSelected(true);'''</span>  | ||
|       } |       } | ||
Aktuální verze z 29. 1. 2018, 07:09
Checkbox
-  Zatržítko v Javě reprezentuje třída JCheckBoxv balíčkujavax.swing.
-  Stav (zatrženo/není zatrženo) zjistíme pomocí metody isSelected().
-  Změnu stavu provedeme metodou setSelected(...).
Radiobutton
-  Velmi podobné chování má třída JRadioButton. Také metody pro zjištění a nastavení stavu jsou stejné, tedyisSelected()asetSelected(...).
- Skupiny tlačítek
- Tlačítka Radiobutton velmi často seskupujeme do skupin, kdy vždy jen jedno tlačítko je aktivní (chovají se společně jako přepínač).
-  K seskupení tlačítek slouží třída ButtonGroup.
-  Tlačítko do skupiny přidáme metodou buttonGroup.add(jRadioButton).
Příklad použití
- Vytvoříme jednoduchou aplikaci, která přečte hodnotu checkboxu a skupiny radiobuttonů a zapíše ji do textové oblasti.
- Vysvětlivky
-  Kód, který se netýká práce s checkboxem a radio buttonem.
-  Kód, který musíme napsat my
-  Kód, který vytvoří GUI Designer
public class HlavniOkno extends JFrame {
    JButton btPridej;
    JCheckBox cbSplneno;
    ButtonGroup btGrpPovinne;
    JRadioButton rbPovinneAno;
    JRadioButton rbPovinneNe;
    JScrollPane jScrollPane1;
    JTextArea taVystup;
    public HlavniOkno() {
        initComponents(); 
        // Metoda initComponents() vytvoří prvky GUI, 
        //  musí se tedy volat první!
        // Nastavení počátečního zatržení:
        this.cbSplneno.setSelected(true); // Checkbox bude na začátku zatržen!
        // Aktivní bude přepínací tlačítko (radiobutton) Ne.
        this.rbPovinne.setSelected(true); 
    }
    private void initComponents() {
        btPridej = new JButton();
        cbSplneno = new JCheckBox();
        rbPovinneAno = new JRadioButton();
        rbPovinneNe = new JRadioButton();
        btGrpPovinne = new ButtonGroup();
        btGrpPovinne.add(rbPovinneAno);
        btGrpPovinne.add(rbPovinneNe);
        jScrollPane1 = new JScrollPane();
        taVystup = new JTextArea();
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        jScrollPane1.setViewportView(taVystup);
        btPridej.setText("Přidej");
        btPridej.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btPridejActionPerformed(evt);
            }
        });
        cbSplneno.setText("Splněno");
        ...
        pack();
   }
   private void btPridejActionPerformed(java.awt.event.ActionEvent evt) {                                         
       String novyRadek;
       boolean zatrzeno = this.cbSplneno.isSelected();
       if (zatrzeno) novyRadek = "Splněno";
       else          novyRadek = "Není splněno";
       novyRadek += " (";
       boolean povinne = this.rbPovinneAno.isSelected();
       if (povinne) novyRadek += "Povinné";
       else         novyRadek += "Není povinné";
       novyRadek += ")";
       this.taVystup.setText(
               this.taVystup.getText()+novyRadek+"\n"
           );
   }                                        
   public static void main(String args[]) {
       new HlavniOkno().setVisible(true);
   }
}
				
								
				
