Java tutorial
import java.awt.Cursor; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class Main implements Runnable, ActionListener { private boolean animate; private Cursor[] cursors = new Cursor[] { Cursor.getPredefinedCursor(Cursor.N_RESIZE_CURSOR), Cursor.getPredefinedCursor(Cursor.NE_RESIZE_CURSOR) }; private JFrame frame; public Main(JFrame frame) { animate = false; this.frame = frame; } public void run() { int count = 0; while (animate) { try { Thread.currentThread().sleep(200); } catch (Exception ex) { } frame.setCursor(cursors[count % cursors.length]); count++; } frame.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); } public void actionPerformed(ActionEvent evt) { JButton button = (JButton) evt.getSource(); if (animate) { button.setText("Start Animation"); animate = false; } else { animate = true; button.setText("Stop Animation"); new Thread(this).start(); } } public static void main(String[] args) { JFrame frame = new JFrame(); JButton button = new JButton("Start Animation"); button.addActionListener(new Main(frame)); frame.getContentPane().add(button); frame.setSize(300, 300); frame.setVisible(true); } public static void p(String str) { System.out.println(str); } }