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í
- 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 sám
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);
}
}