正如标题已经显示我对“Mouse.next()”函数有疑问。
我正在编程我自己的按钮,为此我必须检查,如果按下了鼠标左键。我想,我可以这样做:
while(Mouse.next()) {
if(Mouse.getEventButtonState() && Mouse.getEventButton() == 0) {
// some code..
}
}
如果我只有一个按钮实例,这也有效。但是如果我添加另一个实例,则永远不会为第二个(最后创建的)按钮调用while循环...
有人有任何想法,为什么会发生这种情况?...
以及这些功能(在互联网上找到它们)Mouse.getEventButtonState()
,Mouse.getEventButton() == 0
和Mouse.isButtonDown(0)
对于另一个实例,我的意思是:MyButton button = new MyButton();
修改
我的问题是:如何让Mouse.next()
使用周围类的多个实例...
答案 0 :(得分:1)
因为鼠标是单身人士。只要它是Singleton呼叫next将消耗Event。你不能两次消耗同一个事件!当第一个对象调用next()时它会消耗它,而当第二个对象调用next()时,没有第二个单击要消耗。
答案 1 :(得分:0)
问题是getEventButton()
根据按下的按钮返回不同的数字。你应该做的是:
while (Mouse.next()) {
if (Mouse.getEventButtonState()) {
int buttonId = Mouse.getEventButton();
switch (buttonId) {
case -1: break; // no button was clicked
case 0:
// code for first button
break;
case 1:
// code for second button
break;
}
}
}