カーソルを指定する
カーソルの変更
通常、コンポーネントにカーソルが乗った場合はデフォルトのカーソルのままです
しかし、アプリケーションの作成などではカーソルを意図的に変更したい場合があります
カーソルはコンポーネントごとに指定することができ
カーソルの変更には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()]);
}
}
チョイスから、変更するカーソルタイプを選択してください
指定されたカーソルタイプに、マウスカーソルが変更されます