Java: Checkbox a RadioButton
Z MiS
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); } }