Ho provato usando il metodo che mi hai proposto:
codice:
...
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
ma non conosco WindowAdapter(), così ho presto provato ad implementarli tutti scrivendo così:
codice:
import java.awt.*;
import java.awt.event.*;
public class Bottone extends Frame
{
// Costruttore classe Bottone
Button cliccami=new Button("Cliccami");
Label cliccato=new Label("Non mi hai cliccato nemmeno una volta");
public Bottone()
{
cliccami.addActionListener(new Ascoltatore());
// setup comando
cliccami.setActionCommand("CLICK");
// Aggiungo il bottone e la label al Frame.
add(cliccami, BorderLayout.NORTH);
add(cliccato, BorderLayout.SOUTH);
// metodi di Frame
pack();
setVisible(true);
}
// main
public static void main (String [] arg)
{
new Bottone();
}
// Ascoltatore di eventi Action
int Volte=2;
public class Ascoltatore implements ActionListener
{
public void actionPerformed (ActionEvent e)
{
String Comando=e.getActionCommand();
if (Comando.compareTo("CLICK")==0)
{
cliccato.setText("Mi hai cliccato");
cliccami.setLabel("Ricliccami");
cliccami.setActionCommand("RECLICK");
};
if (Comando.compareTo("RECLICK")==0)
cliccato.setText("Mi hai cliccato "+(Volte++)+" volte.");
}
} // Fine Ascoltatore
//Window listener
class BottoneWindowListener implements WindowListener
{
public void windowActivated(WindowEvent e)
{
System.out.println("Sentito un Window Activated");
}
public void windowClosed(WindowEvent e)
{
System.out.println("Sentito un Window Closed");
}
public void windowClosing(WindowEvent e)
{
System.out.println("Sentito un Window Closing");
System.exit(0);
}
public void windowDeactivated(WindowEvent e)
{
System.out.println("Sentito un Window Deactivaded");
}
public void windowDeiconified(WindowEvent e)
{
System.out.println("Sentito un Window Deiconified");
}
public void windowIconified(WindowEvent e)
{
System.out.println("Sentito un Window Iconified");
}
public void windowOpened(WindowEvent e)
{
System.out.println("Sentito un Window Opened");}// Fine Window Listener
}
} // Fine Bottone
il compilatore non ha rilevato problemi, ma lanciato il programma non riesco a chiuderlo usando la X...