Java: Checkbox a RadioButton

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (Checkbox: Drobná oprava formulace.)
(Přidány RadioButton a příklad je společný pro obě třídy.)
Řádka 3: Řádka 3:
 
== Checkbox ==
 
== Checkbox ==
 
* Zatržítko v Javě reprezentuje třída <code>JCheckBox</code> v&nbsp;balíčku <code>javax.swing</code>.
 
* Zatržítko v Javě reprezentuje třída <code>JCheckBox</code> v&nbsp;balíčku <code>javax.swing</code>.
* Stav (zatrženo/není zatrženo) zjistíme pomocí metody <code>isSelected</code>.
+
* Stav (zatrženo/není zatrženo) zjistíme pomocí metody <code>isSelected()</code>.
* Stav nastavíme pomocí metody <code>setSelected</code>.
+
* Změnu stavu provedeme metodou <code>setSelected(...)</code>.
  
; Příklad použití:
+
 
 +
== Radiobutton ==
 +
* Velmi podobné chování má třída <code>JRadioButton</code>. Také metody pro zjištění a nastavení stavu jsou stejné, tedy <code>isSelected()</code> a&nbsp;<code>setSelected(...)</code>.
 +
 
 +
; 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&nbsp;seskupení tlačítek slouží třída <code>ButtonGroup</code>.
 +
* Tlačítko do skupiny přidáme metodou <code>buttonGroup.add(jRadioButton)</code>.
 +
 
 +
 
 +
== Příklad použití ==
 
  public class HlavniOkno extends JFrame {
 
  public class HlavniOkno extends JFrame {
 
   
 
   
 
     JButton btPridej;
 
     JButton btPridej;
 
     '''JCheckBox cbSplneno;'''
 
     '''JCheckBox cbSplneno;'''
 +
    '''ButtonGroup btGrpPovinne;
 +
    JRadioButton rbPovinneAno;
 +
    JRadioButton rbPovinneNe;'''
 
     JScrollPane jScrollPane1;
 
     JScrollPane jScrollPane1;
 
     JTextArea taVystup;
 
     JTextArea taVystup;
Řádka 17: Řádka 30:
 
         initComponents();
 
         initComponents();
 
         '''this.cbSplneno.setSelected(true);''' ''// Checkbox bude na začátku zatržen!''
 
         '''this.cbSplneno.setSelected(true);''' ''// Checkbox bude na začátku zatržen!''
    }
+
        '''this.rbPovinne.setSelected(true);''' ''// Aktivní bude přepínací tlačítko (radiobutton) ''Ne''.  }
 
   
 
   
 
     private void initComponents() {
 
     private void initComponents() {
 
         btPridej = new JButton();
 
         btPridej = new JButton();
 
         '''cbSplneno = new JCheckBox();'''
 
         '''cbSplneno = new JCheckBox();'''
 +
 +
        '''rbPovinneAno = new JRadioButton();'''
 +
        '''rbPovinneNe = new JRadioButton();'''
 +
        '''btGrpPovinne = new ButtonGroup();'''
 +
        '''btGrpPovinne.add(rbPovinneAno);'''
 +
        '''btGrpPovinne.add(rbPovinneNe);'''
 +
 
         jScrollPane1 = new JScrollPane();
 
         jScrollPane1 = new JScrollPane();
 
         taVystup = new JTextArea();
 
         taVystup = new JTextArea();
Řádka 41: Řádka 61:
 
   
 
   
 
     private void btPridejActionPerformed(java.awt.event.ActionEvent evt) {                                         
 
     private void btPridejActionPerformed(java.awt.event.ActionEvent evt) {                                         
        boolean zatrzeno = '''this.cbSplneno.isSelected();'''
 
 
         String novyRadek;
 
         String novyRadek;
 +
        boolean zatrzeno = '''this.cbSplneno.isSelected();'''
 
         if (zatrzeno) novyRadek = "Splněno";
 
         if (zatrzeno) novyRadek = "Splněno";
 
         else          novyRadek = "Není 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.setText(
 
                 this.taVystup.getText()+novyRadek+"\n"
 
                 this.taVystup.getText()+novyRadek+"\n"
Řádka 53: Řádka 79:
 
         new HlavniOkno().setVisible(true);
 
         new HlavniOkno().setVisible(true);
 
     }
 
     }
}
+
}
 
+
== Radiobutton ==
+

Verze z 25. 1. 2018, 12:17


Checkbox


Radiobutton

Skupiny tlačítek


Příklad použití

public class HlavniOkno extends JFrame {

    JButton btPridej;
    JCheckBox cbSplneno;
    ButtonGroup btGrpPovinne;
    JRadioButton rbPovinneAno;
    JRadioButton rbPovinneNe;
    JScrollPane jScrollPane1;
    JTextArea taVystup;

    public HlavniOkno() {
        initComponents();
        this.cbSplneno.setSelected(true); // Checkbox bude na začátku zatržen!
        this.rbPovinne.setSelected(true); // Aktivní bude přepínací tlačítko (radiobutton) Ne.  }

    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);
   }
}
Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje