Download source code from src.zip
See CursorList.java for a list of predefined cursors.
No example image because it is difficult to capture a screen shot showing the cursor.
CursorTest.javaimport java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class TestPanel extends JPanel implements ItemListener
{
JPanel top;
JComboBox<String> cursors;
Cursor custom;
TestPanel()
{
//Create and load the duke icon.
ImageIcon icon = createImageIcon("dukeWaveRed.gif");
custom = Toolkit.getDefaultToolkit().createCustomCursor(icon.getImage(), new Point(15,15),
"Duke Waving");
String names[] = new String[15];
int i;
for (i=0; i<20; i++) {
try {
names[i] = Cursor.getPredefinedCursor(i).getName();
}
catch(IllegalArgumentException e)
{
break;
}
}
System.out.println("There are " + i + " predefined cursors");
names[14] = custom.getName();
cursors = new JComboBox<String>(names);
cursors.addItemListener(this);
top = new JPanel();
top.add(cursors);
}
/** Returns an ImageIcon, or null if the path was invalid. */
protected static ImageIcon createImageIcon(String path) {
java.net.URL imgURL = TestPanel.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
}
else return new ImageIcon(path);
}
public void itemStateChanged(ItemEvent e)
{
int idx = cursors.getSelectedIndex();
setCursor( idx<14? Cursor.getPredefinedCursor( idx ): custom );
}
}
public class CursorTest extends JApplet
{
public void init()
{
TestPanel panel = new TestPanel();
add(panel);
add(panel.top,BorderLayout.NORTH);
}
public static void main( String args[] )
{
TestPanel panel = new TestPanel();
JFrame frame = new JFrame("Cursor Test" );
frame.add(panel);
frame.add(panel.top,BorderLayout.NORTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize( 240, 180 );
frame.setVisible(true);
}
}
Maintained by John Loomis, updated Tue Feb 26 12:01:49 2019