import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.event.*;

class CurseurPanel extends JPanel {
  Timer t = null;
  Action updateAction;
  CurseurPanel() {
    final Cursor croix = new Cursor(Cursor.WAIT_CURSOR);
    final Cursor fleche = getCursor();
    updateAction = new AbstractAction() {
	boolean enJaune = false;
	public void actionPerformed(ActionEvent e) {
	  if (enJaune = !enJaune) 
	    setBackground(Color.yellow);
	  else 
	    setBackground(Color.blue);
	}
      };
    setBackground(Color.green);
    addMouseListener(new MouseAdapter() {
	public void mousePressed(MouseEvent e) {
	  if (t == null) {
	    t =  new Timer(300, updateAction);
	    t.start(); 
	    setCursor(croix);
	  }
	  else {
	    t.stop();
	    t = null;
	    setCursor(fleche);
	  }
	}
      });
  }
}
class TestCurseur {
  public static void main(String[] args) {
    JFrame f = new JFrame("Démo Couleur Curseur Timer");
    JPanel curseurPanel = new CurseurPanel();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container contentPane = f.getContentPane();
    contentPane.add(curseurPanel, BorderLayout.CENTER);
    f.setSize(200,200);
    f.setVisible(true);
  }
}
