La gestione degli eventi in java Swing
di Antonio Coschignano, luned́ 10 agosto 2009
Pagina 3 di 3
Esempio
Per concludere vediamo un esempio pratico utilizzando gli eventi generati dal movimento del mouse su un JPanel. In questo caso bisogna utilizzare il MouseMotionListener. Nell' esempio viene mostrato come due JLabel inserite nel JPanel indicano la posizione in pixel del puntatore del mouse all' interno del pannello.
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame.*
import javax.swing.border.TitledBorder;
public class ListenerDemo extends JPanel implements MouseMotionListener{
JLabel labelX;
JLabel labelY;
public ListenerDemo() {
addMouseMotionListener(this);
Font f = new Font(Font.SANS_SERIF, Font.PLAIN, 50);
TitledBorder borderX = new TitledBorder("Mouse X");
TitledBorder borderY = new TitledBorder("Mouse Y");
borderX.setTitleJustification(TitledBorder.CENTER);
borderY.setTitleJustification(TitledBorder.CENTER);
labelX = new JLabel("0");
labelX.setBorder(borderX);
labelY = new JLabel("0");
labelY.setBorder(borderY);
labelX.setFont(f);
labelY.setFont(f);
super.add(labelX);
super.add(labelY);
}
public void mouseDragged(MouseEvent e) {}
public void mouseMoved(MouseEvent e) {
labelX.setText("X : "+e.getX());
labelY.setText("Y : "+e.getY());
}
public static void main(String [] argv) {
WindowAdapter adpt = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};
JFrame frame = new JFrame("ListenerDemo");
frame.addWindowListener(adpt);
frame.getContentPane().add(new ListenerDemo(), null);
frame.pack();
frame.setVisible(true);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
}
}
Nel main è stato utilizzato anche un Adapter redefinendo solo il metodo
che riguarda il click del mouse sull' icona di chiusura del frame per terminare l' applicazione.
Ed ecco l' applicazione in esecuzione :





