Java: Checkbox a RadioButton
Z MiS
				
				
				(Rozdíly mezi verzemi)
				
																
				
				
								
				| m (→Checkbox:  Drobná oprava formulace.) | m (Doplněno upozornění, že initComponents() musí být v konstruktoru první().) | ||
| (Nejsou zobrazeny 3 mezilehlé verze od 1 uživatele.) | |||
| Řádka 1: | Řádka 1: | ||
| − | [[Category:VSE]][[Category:Škola]][[Category:Informatika]][[Category:Programování]][[Category:Java]][[Category:GUI]] | + | [[Category:VSE]][[Category:Škola]][[Category:Informatika]][[Category:Programování]][[Category:Java]][[Category:GUI]][[Category:Stránky s obrázky]] | 
| == Checkbox == | == Checkbox == | ||
| * Zatržítko v Javě reprezentuje třída <code>JCheckBox</code> v balíčku <code>javax.swing</code>. | * Zatržítko v Javě reprezentuje třída <code>JCheckBox</code> v 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>. | 
| − | *  | + | * Změnu stavu provedeme metodou <code>setSelected(...)</code>. | 
| + | |||
| + | |||
| + | == 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 <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 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í == | ||
| + | * Vytvoříme jednoduchou aplikaci, která přečte hodnotu checkboxu a skupiny radiobuttonů a zapíše ji do textové oblasti. | ||
| + | [[Image:gui_check-radio.png]] | ||
| + | ; Vysvětlivky | ||
| + | * <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ý vytvoří GUI Designer''</code> | ||
| − | |||
|   public class HlavniOkno extends JFrame { |   public class HlavniOkno extends JFrame { | ||
|       JButton btPridej; |       JButton btPridej; | ||
| − | + |       <span style="color:brown">''JCheckBox cbSplneno;'' | |
| + |      ''ButtonGroup btGrpPovinne;'' | ||
| + |      ''JRadioButton rbPovinneAno;'' | ||
| + |      ''JRadioButton rbPovinneNe;''</span> | ||
|       JScrollPane jScrollPane1; |       JScrollPane jScrollPane1; | ||
|       JTextArea taVystup; |       JTextArea taVystup; | ||
|       public HlavniOkno() { |       public HlavniOkno() { | ||
| − |           initComponents(); | + |           initComponents();   | 
| − |           '''this.cbSplneno.setSelected(true);''' ''// Checkbox bude na začátku zatržen!'' | + |           ''// 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!'' | ||
| + |          ''// Aktivní bude přepínací tlačítko (radiobutton) <code>Ne</code>.'' | ||
| + |          <span style="color:brown">'''this.rbPovinne.setSelected(true);'''</span>  | ||
|       } |       } | ||
|       private void initComponents() { |       private void initComponents() { | ||
|           btPridej = new JButton(); |           btPridej = new JButton(); | ||
| − | + |           <span style="color:brown">''cbSplneno = new JCheckBox();''</span> | |
| + | |||
| + |          <span style="color:brown">''rbPovinneAno = new JRadioButton();''</span> | ||
| + |          <span style="color:brown">''rbPovinneNe = new JRadioButton();''</span> | ||
| + |          <span style="color:brown">''btGrpPovinne = new ButtonGroup();''</span> | ||
| + |          <span style="color:brown">''btGrpPovinne.add(rbPovinneAno);''</span> | ||
| + |          <span style="color:brown">''btGrpPovinne.add(rbPovinneNe);''</span> | ||
| + | |||
|           jScrollPane1 = new JScrollPane(); |           jScrollPane1 = new JScrollPane(); | ||
|           taVystup = new JTextArea(); |           taVystup = new JTextArea(); | ||
| Řádka 35: | Řádka 68: | ||
|           }); |           }); | ||
| − | + |           <span style="color:brown">''cbSplneno.setText("Splněno");''</span> | |
|           ''...'' |           ''...'' | ||
|           pack(); |           pack(); | ||
| Řádka 41: | Řádka 74: | ||
|      private void btPridejActionPerformed(java.awt.event.ActionEvent evt) {                                           |      private void btPridejActionPerformed(java.awt.event.ActionEvent evt) {                                           | ||
| − | |||
|          String novyRadek; |          String novyRadek; | ||
| + |         boolean zatrzeno = <span style="color:brown">'''this.cbSplneno.isSelected();'''</span> | ||
|          if (zatrzeno) novyRadek = "Splněno"; |          if (zatrzeno) novyRadek = "Splněno"; | ||
|          else          novyRadek = "Není splněno"; |          else          novyRadek = "Není splněno"; | ||
| + |         novyRadek += " ("; | ||
| + |         boolean povinne = <span style="color:brown">'''this.rbPovinneAno.isSelected();'''</span> | ||
| + |         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 92: | ||
|          new HlavniOkno().setVisible(true); |          new HlavniOkno().setVisible(true); | ||
|      } |      } | ||
| − | } | + |  } | 
| − | + | ||
| − | + | ||
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);
   }
}
				
								
				
