3

createCustomCursor()Windows で定義済みの 32x32 (たとえば 64x64 またはそれ以上) よりも大きなカーソルを (メソッドによって) 作成する可能性はありますか?

Toolkit toolkit = Toolkit.getDefaultToolkit();
final Image cursor = toolkit.getImage(getClass().getClassLoader().getResource("images/cursor.png"));
toolkit.getBestCursorSize(64, 64);
Cursor mycursor=toolkit.createCustomCursor(cursor, new Point(0,0), "cursor");
setCursor(mycursor);

私は次のことを試しました:

 Cursor emptyCursor = Toolkit.getDefaultToolkit().createCustomCursor(new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB), new Point(0, 0), "empty"); 
        setCursor(emptyCursor);

        this.addMouseMotionListener(new MouseMotionListener(){
            public void mouseDragged(MouseEvent e) {
            }

            public void mouseMoved(MouseEvent e) {
                xCursor = e.getX();
                yCursor = e.getY();
                repaint();
                //e.consume();
            }
        });

 public void paint( Graphics g ) {
           g.drawImage(cursor, xCursor, yCursor, null);
       }

しかし、それは機能せず、GUI全体が消え、すべてのポイントでカーソルが描画されるため、何らかの方法で削除する必要がありますか?

4

2 に答える 2

1

Windows では 32x32 ピクセルのサイズのカーソルのみが許可されているようです。別のサイズが必要な場合は、それを回避する必要があります。

より大きなカーソルを作成するには、これが機能すると思います:

  • 完全に透明なカスタム カーソルを作成します。

  • a を使用しmouseMotionListenerて、カーソルの位置を取得します。

  • 実際の (透明な) カーソルの位置にカーソル イメージを描画します。

于 2013-02-19T00:32:43.113 に答える
1

定義済みの 32x32 よりもカーソルを小さくする方法はありますか? その場合は、カーソルを非常に小さくして本当に気付かないか、透明なカーソルを作成します...次に、画像をカーソルの現在位置の座標に移動するだけです(ここに希望の時間間隔を挿入してください)

于 2013-02-19T00:31:55.637 に答える