2010-11-25 7 views
23

Javaアプリケーションが実行されているときに、カスタマイズした32x32画像にカーソルアイコンを変更したいと思います。見て検索したところ、JComponentにカーソルを置くだけです。しかし、Javaアプリケーションがまだ実行されている限り、移動、ブラウズ、およびクリックするたびに、指定したアイコンにカーソルを変更したり、プログラムの実行時間を指定することができます。Javaでカーソルアイコンを変更する方法は?

ありがとう。

答えて

8

コールComponent.setCursor。 いくつかの定義済みカーソルとしてクラスCursorがあります。

カスタムカーソル画像を作成することができます。

setCursor(Toolkit.getDefaultToolkit().createCustomCursor(
new ImageIcon("custom.png").getImage(), 
new Point(0,0),"custom cursor")); 
+1

しかし、私は、アプリケーションの実行時に、あまりにもシステムに拡張したい、言ったようにそれは、フレームのためです。 – DYL

+0

カスタムカーソルのリンクは、とにかく –

41

標準カーソル画像:

setCursor(Cursor.getDefaultCursor()); 

ユーザー定義の画像:

Toolkit toolkit = Toolkit.getDefaultToolkit(); 
Image image = toolkit.getImage("icons/handwriting.gif"); 
Cursor c = toolkit.createCustomCursor(image , new Point(mainPane.getX(), 
      mainPane.getY()), "img"); 
mainPane.setCursor (c); 

あなたがサンプルソースを含むzipファイルをダウンロードすることができます。 HERE

+0

が壊れていますが、コンポーネント上にカーソルを置かないと、「メインページ」はパネルなどのコンポーネントです。しかし、フレームやパネルに限らず、どこにでも変更を加えたいです。 Thx – DYL

+0

あなたは単にパネルの代わりにフレームを使うことができます。 JFrameを使用してクラスを拡張する場合は、単に "this"を使用します。あなたが今はっきりしていることを願っています... –

+0

でも、フレームを使用しても、カスタマイズされたカーソルはフレームの範囲内でのみ制限されますか?フレームの外側にカーソルを移動すると、デフォルトのシステムカーソルに戻ります。私はこれをしたくない... – DYL

3

rootPaneにカーソルを合わせてみてください。

frame.getRootPane().setCursor(...); 
+0

しかし、まだペインまたはフレーム内でのみ。なぜ私はC#やC++で行うことができないのですが、Javaで何をすべきかわかりません。 – DYL

+8

それがうまくいくはずです。 Javaは、デスクトップ全体ではなく、フレームの制御権しか持ちません。アイコンが別のアプリケーション上にあるときにアイコンを制御しようとすると、私はあなたのアプリケーションを使用しません。 – camickr

0

なぜ私はJFrameを出すクラスMyFrameを持っていないのですか?実行するのはJFrameコンストラクタを呼び出し、カーソルを目的のカーソルに設定することだけです。私のアプリケーションでは、カーソルのないタッチスクリーンがあるので、これを実装する方法です。

1
public void mouseEntered(MouseEvent e) 
{ 
// set cursor for frame and its component 
// this is the current frame you are using . 
// You can change the this keyword with your frame name . 

java.awt.Toolkit toolkit = java.awt.Toolkit.getDefaultToolkit(); 
Image image = toolkit.getImage("/images/mousepoint.jpg"); 
Cursor a = toolkit.createCustomCursor(image , new Point(this.getX(),this.getY()), ""); 
this.setCursor (a); 
} 

か、を参照することができます: -
http://java23s.blogspot.in/2011/07/to-change-mouse-pointer-using-java.html

関連する問題