カーソルを指定する


カーソルの変更

通常、コンポーネントにカーソルが乗った場合はデフォルトのカーソルのままです
しかし、アプリケーションの作成などではカーソルを意図的に変更したい場合があります

カーソルはコンポーネントごとに指定することができ
カーソルの変更にはComponentクラスのsetCursor()メソッドを使用します

public synchronized void setCursor( Cursor cursor )

ここでパラメータに渡すのはjava.awt.Cursorクラスのオブジェクトです
このクラスは、それぞれのタイプのカーソルを定数で用意しており
一般的にその定数を用いてインスタンスを生成し、setCursor()に渡します
コンストラクタは次のようになります

public Cursor( int type )

typeには、カーソルのタイプを表す定数を渡します
ここで指定する定数は、Cursorクラスで用意されている定数です

public static final int CROSSHAIR_CURSOR 十字カーソル
public static final int DEFAULT_CURSOR デフォルトカーソル
public static final int E_RESIZE_CURSOR 右端リサイズカーソル
public static final int HAND_CURSOR 手の形状(ハンド)カーソル
public static final int MOVE_CURSOR 移動カーソル
public static final int N_RESIZE_CURSOR 上端リサイズカーソル
public static final int NE_RESIZE_CURSOR 右上リサイズカーソル
public static final int NW_RESIZE_CURSOR 左上リサイズカーソル
public static final int S_RESIZE_CURSOR 下端リサイズカーソル
public static final int SE_RESIZE_CURSOR 右下リサイズカーソル
public static final int SW_RESIZE_CURSOR 左下リサイズカーソル
public static final int TEXT_CURSOR テキストカーソル
public static final int W_RESIZE_CURSOR 左端リサイズカーソル
public static final int WAIT_CURSOR 待ちカーソル

いずれかの用意されたカーソルタイプを指定し、インスタンスを生成します
用意されたカーソルのインスタンスの生成は、同クラスのgetPredefinedCursor()メソッドでも有効です
このメソッドは、指定した定義済みの種類のカーソルオブジェクトを返します

public static Cursor getPredefinedCursor( int type )

また、システムのデフォルトカーソルを得るにはgetDefaultCursor()メソッドを用います

public static Cursor getDefaultCursor()

システムのデフォルトカーソルを返します
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

/*	<applet code="App53.class" width="300"height="300">
 	</applet>
*/

public class App53 extends Applet implements ItemListener{
	Choice cho;
	private String cName[] = {
		"十字" , "デフォルト" , "ハンド" , "移動" , "待ち" , "テキスト" ,
		"左下" , "右下" , "左上" , "右上" ,
		"上" , "下" , "右" , "左"
	};
	private Cursor cr[] = {
		new Cursor(Cursor.CROSSHAIR_CURSOR) ,
		new Cursor(Cursor.DEFAULT_CURSOR) ,
		new Cursor(Cursor.HAND_CURSOR) ,
		new Cursor(Cursor.MOVE_CURSOR) ,
		new Cursor(Cursor.WAIT_CURSOR) ,
		new Cursor(Cursor.TEXT_CURSOR) ,
		new Cursor(Cursor.SW_RESIZE_CURSOR) ,
		new Cursor(Cursor.SE_RESIZE_CURSOR) ,
		new Cursor(Cursor.NW_RESIZE_CURSOR) ,
		new Cursor(Cursor.NE_RESIZE_CURSOR) ,
		new Cursor(Cursor.N_RESIZE_CURSOR) ,
		new Cursor(Cursor.S_RESIZE_CURSOR) ,
		new Cursor(Cursor.W_RESIZE_CURSOR) ,
		new Cursor(Cursor.E_RESIZE_CURSOR) ,
	};

	public void init() {
		setBackground(Color.white);
		cho = (Choice)add(new Choice());
		for(int count = 0 ; count < cName.length ; count++) cho.add(cName[count]);
		cho.addItemListener(this);
	}
	public void itemStateChanged(ItemEvent e) {
		setCursor(cr[cho.getSelectedIndex()]);
	}
}
アプレット

チョイスから、変更するカーソルタイプを選択してください
指定されたカーソルタイプに、マウスカーソルが変更されます



前のページへ戻る次のページへ