package elte.java2_utikalauz5.gui;
/**
Kiválasztható és rádiógombokat szemléltető példaprogram.

A felhasználói felületen három jelölőnégyzet és három rádiógomb látható egymás mellett, ezek kiválasztásakor és törlésekor generált események hatására az alapértelmezett kimenetre kiíródik a kiváltott ItemEvent esemény fajtája, az érintett gomb, annak kiválasztott állapota, valamint a rádiógombok csoportjából az aktuális gomb.
Mivel egyszerre minden rádiógombot nem lehet kikapcsolni, erre a felület alján található nyomógomb ad lehetőséget.
@link.forrásfájl {@docRoot}/../data/gui/src CheckboxTeszt.java
@link.letöltés {@docRoot}/../data/gui CheckboxTeszt.jar
@see java.awt.Checkbox
@see java.awt.CheckboxGroup
@since Java 2 Útikalauz programozóknak 1.3
*/
class CheckboxTeszt implements java.awt.event.ItemListener,
java.awt.event.ActionListener {
/** Rádiógombok csoportja */
private java.awt.CheckboxGroup rádiócsoport = new java.awt.CheckboxGroup();
/**
GUI-t felépítő konstruktor.
@param felület a felhasználói felületet tartalmazó konténer
*/
private CheckboxTeszt( java.awt.Container felület ) {
felület.setLayout(new java.awt.GridLayout(3, 1));
java.awt.Panel panel = new java.awt.Panel();
felület.add( panel );
java.awt.Panel rádió = new java.awt.Panel();
felület.add( rádió ); //3 gomb
for ( String felirat : new String[]{"Első", "Második", "Harmadik"} ) {
java.awt.Checkbox gomb = new java.awt.Checkbox(felirat);
gomb.addItemListener( this );
panel.add( gomb );
gomb=new java.awt.Checkbox(felirat+" (rádió)", rádiócsoport, false);
gomb.addItemListener( this );
rádió.add( gomb );
}
java.awt.Button gomb = new java.awt.Button("Rádiógombok törlése");
gomb.addActionListener( this );
felület.add( gomb );
}
/**
Kiválasztási és törlési események naplózása.
@param esemény Kiválasztási/törlési esemény
*/
public void itemStateChanged( java.awt.event.ItemEvent esemény ) {
java.awt.Checkbox gomb = (java.awt.Checkbox)esemény.getSource();
System.out.println( gomb.getLabel()+" "+(esemény.getStateChange()==
java.awt.event.ItemEvent.SELECTED ? "SELECTED" : "DESELECTED")+
", állapota:"+(gomb.getState() ? "kiválasztva" : "törölve")+
", rádiócsoportban aktív:"+(rádiócsoport.getSelectedCheckbox()==null?
"nincs kiválasztás":rádiócsoport.getSelectedCheckbox().getLabel()));
}
/**
Gombnyomáskor a rádiócsoport kiválasztásának törlése.
@param esemény Gombnyomás esemény
*/
public void actionPerformed( java.awt.event.ActionEvent esemény ) {
rádiócsoport.setSelectedCheckbox(null);
}
/**
Teszt grafikus felhasználói felület felépítése.
@param felület A felhasználói felületet tartalmazó konténer.
@param argumentumok Az indításkor megadott paraméterek.
*/
public static void felépít(java.awt.Container felület,
String argumentumok[]) {
new CheckboxTeszt( felület );
}
/**
A tesztprogram indítása.
@param argumentumok Az indításkor megadott paraméterek.
*/
public static void main(String argumentumok[]) {
java.awt.Frame ablak=new AblakTeszt.Ablak("Kiválasztható gombok teszt");
felépít( ablak, argumentumok ); //felület felépítése
ablak.setVisible(true); //és megjelenítése
}
}