- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我目前正在处理一些有关双鼠标输入的问题。我查找了几个库并认为 JInput 效果最好。尽管我能够获得插入笔记本电脑的所有设备的列表,但我无法检索任何 PollData。以下代码仅产生 0:
public static void main(String[] args) {
Controller mouse1 = null;
Controller[] cs = ControllerEnvironment.getDefaultEnvironment().getControllers();
for(int i = 0; i < cs.length; i++) {
if(cs[i].getType() == Type.MOUSE) {
mouse1 = cs[i];
}
}
mouse1.poll();
Component[] comps = mouse1.getComponents();
while(true) {
mouse1.poll();
for(int i = 0; i < comps.length; i++) {
System.out.print(comps[i].getName() + ": ");
System.out.println(comps[i].getPollData());
}
}
}
我也尝试过使用键盘输入来解决同样的问题。我可以获得 key 的数量,但无法访问有关 key 状态的任何信息。我希望有人知道如何解决此问题或知道可能导致此问题的原因。
预先感谢您,aquatyp。
最佳答案
我知道这已经快一年了,但为了那些像我一样通过 Google 找到这个的人的利益......
确保您已初始化 OpenGL 显示(请注意 if 语句只是为了消除大量消息):
import net.java.games.input.Controller;
import net.java.games.input.ControllerEnvironment;
import net.java.games.input.Mouse;
import net.java.games.input.RawInputEnvironmentPlugin;
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
public class Main
{
public static void main(String[] args)
{
try
{
Display.setDisplayMode(new DisplayMode(800,600));
Display.create();
}
catch (LWJGLException e)
{
e.printStackTrace();
System.exit(0);
}
RawInputEnvironmentPlugin rep = new RawInputEnvironmentPlugin();
Mouse mouse;
StringBuilder sb = new StringBuilder();
while (!Display.isCloseRequested())
{
int i = 0;
for (Controller controller : ControllerEnvironment.getDefaultEnvironment().getControllers())
{
if (controller.getType() == Controller.Type.MOUSE)
{
//System.out.println(controller.getName() + " | " + controller.getType());
mouse = (Mouse)controller;
mouse.poll();
i += 1;
if (mouse.getX().getPollData() > 0.0f || mouse.getY().getPollData() > 0.0f)
{
sb.append("[");
sb.append(i);
sb.append("] X=");
sb.append(mouse.getX().getPollData());
sb.append(" Y=");
sb.append(mouse.getY().getPollData());
System.out.println(sb.toString());
sb.setLength(0);
}
}
}
Display.update();
}
}
}
关于java - JInput 的 getPollData() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24916586/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!