Java: Checkbox a RadioButton
Z MiS
(Rozdíly mezi verzemi)
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 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>. |
− | ; 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 <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í == | ||
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) { | ||
− | |||
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); | ||
} | } | ||
− | } | + | } |
− | + | ||
− | + |
Verze z 25. 1. 2018, 12:17
Checkbox
- Zatržítko v Javě reprezentuje třída
JCheckBox
v 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í
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); } }