私はJavaでアプリを書くためにJOGL2とNativeWindow APIを使用しています。マウスカーソルを非表示にする最も簡単な方法は何ですか?JOGL2を使ってマウスカーソルを隠すには?
[編集] 私はJFrameを使ってウィンドウを作成するのではなく、JOGLからGLWindowを作成します。 GLWindowにはsetCursorメソッドがありません。これはまだ可能ですか?
私はJavaでアプリを書くためにJOGL2とNativeWindow APIを使用しています。マウスカーソルを非表示にする最も簡単な方法は何ですか?JOGL2を使ってマウスカーソルを隠すには?
[編集] 私はJFrameを使ってウィンドウを作成するのではなく、JOGLからGLWindowを作成します。 GLWindowにはsetCursorメソッドがありません。これはまだ可能ですか?
ます(thekidderは)私は(AlexRが書いたように)このようなFrame
(またはJFrame
)内GLCanvas
を使用するようGLWindow
はその機能はありません言うように:さらにいくつかのそれはと思わ検索した後
public static void main(String... args) {
// create the cursor
Toolkit t = Toolkit.getDefaultToolkit();
Image i = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
Cursor noCursor = t.createCustomCursor(i, new Point(0, 0), "none");
// try it with a normal frame
Frame f = new Frame();
// create the GLCanvas and add it to the frame
GLCanvas canvas = new GLCanvas();
frame.add(canvas);
f.setCursor(noCursor);
f.setSize(400, 200);
f.setVisible(true);
}
マウスがアプリケーションウィンドウの領域にある場合、任意の画像をカスタムカーソルとして設定できます。透明な画像1x1ピクセルを使用してください。私はそれを使用しました - うまく動作します。通常のAPI、JOGL、ネイティブコードはありません。
これはまだJOGL2のNEWTウィンドウには実装されていません。 http://jogamp.org/bugzilla/show_bug.cgi?id=409
これは、以来、NEWT(GLWindowオブジェクト)を使用してJOGL2で実装されています。 https://jogamp.org/bugzilla/show_bug.cgi?id=409(キダーの答えで参照)を参照してください。
glWindow.setPointerVisible(false);
現時点ではイモリGLWindowで:あなたはとてもようにそれを行うことができます
window = GLWindow.create(caps);
...
window.requestFocus();
window.setAlwaysOnTop(true); // i think, be on top is good than mouse is jailed
window.setUndecorated(true); // remove window borders (if u want)
window.setPointerVisible(false); // hide cursor
window.confinePointer(true); // jail inside (cursor will be limited to window borders)
私は私の質問を編集しました - これが可能ですJFrameを使わずに? – thekidder
@thekidder:新しく編集された答えを見てください! – dacwe
うん、それは私の疑惑だった。ありがとう! – thekidder