Java/Swing JFC/Cursor
Change Cursor in a thread for animation
<source lang="java">
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); }
}
</source>
Change the cursor shape
<source lang="java">
import java.awt.Cursor; import javax.swing.JFrame; import javax.swing.SwingUtilities; public class Main extends JFrame {
public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { Main mainForm = new Main(); mainForm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mainForm.setSize(250, 250); Cursor cursor = new Cursor(Cursor.HAND_CURSOR); mainForm.setCursor(cursor); mainForm.pack(); mainForm.setVisible(true); } }); }
}
</source>
Changing the Cursor
<source lang="java">
import java.awt.Button; import java.awt.ruponent; import java.awt.Cursor; import javax.swing.JFrame; public class Main {
public static void main() { Component comp = new Button("OK"); Cursor cursor = comp.getCursor(); comp.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); JFrame frame = new JFrame(); frame.add(comp); frame.setSize(300, 300); frame.setVisible(true); }
}
</source>