Java: Checkbox a RadioButton
Z MiS
(Rozdíly mezi verzemi)
m (Přidán nadpis Radiobutton, zatím bez komentáře...) |
m (Doplněno upozornění, že initComponents() musí být v konstruktoru první().) |
||
(Nejsou zobrazeny 4 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í | + | * 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 34: | Řádka 68: | ||
}); | }); | ||
− | + | <span style="color:brown">''cbSplneno.setText("Splněno");''</span> | |
''...'' | ''...'' | ||
pack(); | pack(); | ||
Řádka 40: | Řá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 52: | Řá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
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
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);
}
}