Pulsanti in Java AWT: eventi, liste, checkbox e radio
Classificato in Informatica
Scritto il in
italiano con una dimensione di 5,59 KB
Pulsanti in Java
I pulsanti possono essere creati come oggetti in Java. Per creare un nuovo oggetto pulsante si utilizza il seguente codice:
Button pulsante;
pulsante = new Button("Button");Il codice utilizzato nel metodo init() dell'applet crea il pulsante e lo visualizza sullo schermo. Lo stesso oggetto può essere usato come identificativo del pulsante quando si verifica un evento.
Eventi del pulsante
Quando un utente preme un pulsante, si produce un evento. Allo stesso modo, si produce un evento quando si preme un pulsante del mouse. Gli eventi di pulsante vengono gestiti con il metodo action():
public boolean action(Event evt, Object obj) {
if (evt.target instanceof Button)
System.out.println((String) obj);
else
System.out.println("Event No-Button");
}La distinzione tra i diversi pulsanti presenti può essere effettuata utilizzando l'oggetto target passato attraverso l'oggetto Event, confrontandolo con gli oggetti pulsante impostati nell'interfaccia:
import java.awt.*;
import java.applet.Applet;
public class ProvaPulsanti extends Applet {
Button b1, b2, b3;
public void init() {
b1 = new Button("Button B1");
b2 = new Button("Button B2");
b3 = new Button("Button B3");
this.add(b1);
this.add(b2);
this.add(b3);
}
public boolean action(Event evt, Object obj) {
if (evt.target.equals(b1))
System.out.println("Hai premuto il pulsante B1");
if (evt.target.equals(b2))
System.out.println("Hai premuto il pulsante B2");
if (evt.target.equals(b3))
System.out.println("Hai premuto il pulsante B3");
return true;
}
}Pulsanti di lista
I pulsanti di selezione da una lista (Choice) permettono di accedere rapidamente al primo elemento della lista. Ad esempio, si può implementare la selezione di colori con un pulsante Choice:
import java.awt.*;
import java.applet.Applet;
public class SelezioneColore extends Applet {
Choice selettore;
public void init() {
selettore = new Choice();
selettore.addItem("Rosso");
selettore.addItem("Verde");
selettore.addItem("Blu");
add(selettore);
}
public boolean action(Event evt, Object obj) {
if (evt.target instanceof Choice) {
String colore = (String) obj;
System.out.println("Il colore scelto è " + colore);
}
return true;
}
}Il metodo addItem() aggiunge gli elementi alla lista. Nel gestore dell'evento, l'argomento obj contiene l'elemento selezionato, mentre il controllo sul target verifica che l'evento provenga effettivamente dal pulsante di tipo Choice.
Checkbox
Le checkbox sono pulsanti di selezione usati frequentemente per indicare una scelta sì/no (vero o falso). Lo stato dell'argomento evt.arg restituito dall'evento è un oggetto Boolean: true se la casella è selezionata, false altrimenti. Lo stato può essere ottenuto anche tramite i metodi getLabel() e getState() dell'oggetto Checkbox.
import java.awt.*;
import java.applet.Applet;
public class CasellaControllo extends Applet {
Checkbox riempi;
public void init() {
riempi = new Checkbox("Riempi");
add(riempi);
}
public boolean action(Event evt, Object obj) {
if (evt.target instanceof Checkbox)
System.out.println("Checkbox " + evt.arg.toString());
return true;
}
}Pulsanti di scelta (radio button)
I pulsanti di un gruppo di controllo possono formare un'interfaccia a pulsanti radio (CheckboxGroup): si tratta di checkbox raggruppate in modo che ci sia sempre un solo pulsante attivo.
import java.awt.*;
import java.applet.Applet;
public class PulsantiRadio extends Applet {
CheckboxGroup radio;
public void init() {
radio = new CheckboxGroup();
add(new Checkbox("Primo", radio, true));
add(new Checkbox("Secondo", radio, false));
add(new Checkbox("Terzo", radio, false));
}
}Nell'esempio precedente si osserva che c'è sempre un pulsante attivo, rispettando così l'interfaccia prevista dal gruppo.
Pulsanti autonomi
La natura orientata agli oggetti di Java permette di creare pulsanti completamente indipendenti. In questo tipo di pulsante, il gestore degli eventi è costruito all'interno della stessa classe che estende Button. È possibile aggiungere pulsanti all'applicazione senza doversi preoccupare degli eventi che potrebbero generare.
import java.awt.*;
import java.applet.Applet;
class PulsanteOK extends Button {
public PulsanteOK() {
setLabel("OK");
}
public boolean action(Event evt, Object obj) {
System.out.println("Pulsante OK");
return true;
}
}
public class PulsanteAutonomo extends Applet {
Button pulsanteOK;
public void init() {
pulsanteOK = new PulsanteOK();
add(pulsanteOK);
}
}Va notato che non c'è un metodo action() nella classe applet PulsanteAutonomo: la classe PulsanteOK gestisce direttamente gli eventi del proprio pulsante. Se nell'applet fossero presenti altri pulsanti, si potrebbe utilizzare un metodo action() per gestire gli eventi di quegli oggetti.