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 } }