DEFAULT_CURSOR
.
*
* @serial
* @see #getType()
*/
int type = DEFAULT_CURSOR;
/**
* The type associated with all custom cursors.
*/
public static final int CUSTOM_CURSOR = -1;
/*
* hashtable, filesystem dir prefix, filename, and properties for custom cursors support
*/
private static final HashtableGraphicsEnvironment.isHeadless
returns true
*/
static public Cursor getSystemCustomCursor(final String name)
throws AWTException, HeadlessException {
GraphicsEnvironment.checkHeadless();
Cursor cursor = systemCustomCursors.get(name);
if (cursor == null) {
synchronized(systemCustomCursors) {
if (systemCustomCursorProperties == null)
loadSystemCustomCursorProperties();
}
String prefix = CursorDotPrefix + name;
String key = prefix + DotFileSuffix;
if (!systemCustomCursorProperties.containsKey(key)) {
if (log.isLoggable(PlatformLogger.Level.FINER)) {
log.finer("Cursor.getSystemCustomCursor(" + name + ") returned null");
}
return null;
}
final String fileName =
systemCustomCursorProperties.getProperty(key);
String localized = systemCustomCursorProperties.getProperty(prefix + DotNameSuffix);
if (localized == null) localized = name;
String hotspot = systemCustomCursorProperties.getProperty(prefix + DotHotspotSuffix);
if (hotspot == null)
throw new AWTException("no hotspot property defined for cursor: " + name);
StringTokenizer st = new StringTokenizer(hotspot, ",");
if (st.countTokens() != 2)
throw new AWTException("failed to parse hotspot property for cursor: " + name);
int x = 0;
int y = 0;
try {
x = Integer.parseInt(st.nextToken());
y = Integer.parseInt(st.nextToken());
} catch (NumberFormatException nfe) {
throw new AWTException("failed to parse hotspot property for cursor: " + name);
}
try {
final int fx = x;
final int fy = y;
final String flocalized = localized;
cursor = java.security.AccessController.* Note: this constructor should only be used by AWT implementations * as part of their support for custom cursors. Applications should * use Toolkit.createCustomCursor(). * @param name the user-visible name of the cursor. * @see java.awt.Toolkit#createCustomCursor */ protected Cursor(String name) { this.type = Cursor.CUSTOM_CURSOR; this.name = name; } /** * Returns the type for this cursor. */ public int getType() { return type; } /** * Returns the name of this cursor. * @return a localized description of this cursor. * @since 1.2 */ public String getName() { return name; } /** * Returns a string representation of this cursor. * @return a string representation of this cursor. * @since 1.2 */ public String toString() { return getClass().getName() + "[" + getName() + "]"; } /* * load the cursor.properties file */ private static void loadSystemCustomCursorProperties() throws AWTException { synchronized(systemCustomCursors) { systemCustomCursorProperties = new Properties(); try { AccessController.