Java: Checkbox a RadioButton

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
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&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>.
 +
 
 +
 
 +
== 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í ==
 +
* Vytvoříme jednoduchou aplikaci, která přečte hodnotu checkboxu a skupiny radiobuttonů a&nbsp;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>
  
; Příklad použití:
 
 
  public class HlavniOkno extends JFrame {
 
  public class HlavniOkno extends JFrame {
 
   
 
   
 
     JButton btPridej;
 
     JButton btPridej;
     '''JCheckBox cbSplneno;'''
+
     <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();
         '''cbSplneno = new JCheckBox();'''
+
         <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:
 
         });
 
         });
 
   
 
   
         '''cbSplneno.setText("Splněno");'''
+
         <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) {                                         
        boolean zatrzeno = '''this.cbSplneno.isSelected();'''
 
 
         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);
 
     }
 
     }
}
+
}
 
+
== Radiobutton ==
+

Aktuální verze z 29. 1. 2018, 07:09


Checkbox


Radiobutton

Skupiny tlačítek


Příklad použití

Gui check-radio.png

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