2010-11-30 2 views
3

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

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

ответ

4

Как вы (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); 
} 
+0

Я отредактировал мой вопрос - возможно ли это без использования JFrame? – thekidder 2010-12-01 16:12:19

1

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

0

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

2

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

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

glWindow.setPointerVisible(false); 
0

В текущее время с 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) 
Смежные вопросы