Как скрыть курсор мыши с помощью JOGL2? - PullRequest
3 голосов
/ 30 ноября 2010

Я использую JOGL2 и API-интерфейсы NativeWindow для написания приложения на Java. Каков наилучший / простой способ скрыть курсор мыши?

[EDIT] Я не использую JFrame для создания окна, а скорее GLWindow из JOGL. У GLWindow нет метода setCursor. Это все еще возможно?

Ответы [ 5 ]

4 голосов
/ 01 декабря 2010

Как вы (thekidder) говорите, GLWindow не имеет такой возможности, поэтому я бы использовал GLCanvas внутри Frame (или JFrame), как это (как писал AlexR):

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);
}
2 голосов
/ 16 декабря 2011

С тех пор это было реализовано в JOGL2 с использованием NEWT (объект GLWindow).См. https://jogamp.org/bugzilla/show_bug.cgi?id=409 (упоминается в ответе thekidder).

Вы можете сделать это так:

glWindow.setPointerVisible(false);
1 голос
/ 30 ноября 2010

Если мышь находится в области окна приложения, вы можете установить любое изображение в качестве пользовательского курсора.Используйте прозрачное изображение 1x1 пикселей.Я использовал это - работает отлично.Это обычный API, нет JOGL, нет нативного кода.

0 голосов
/ 02 августа 2012

В настоящее время с NEWT 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)
0 голосов
/ 01 декабря 2010

После некоторого дальнейшего поиска кажется, что это еще не реализовано для окон NEWT в JOGL2.На bugzilla JOGL подан запрос на улучшение: http://jogamp.org/bugzilla/show_bug.cgi?id=409

...