gpt4 book ai didi

java - 理解 Java 中的 Robot 类

转载 作者:行者123 更新时间:2023-12-02 11:42:46 26 4
gpt4 key购买 nike

我正在查看一段代码,其中包含 Robot() 类的实现。我不明白以下方法

    public void mousePressed(MouseEvent e) {
System.out.println("Mouse Pressed");
writer.println(EnumCommands.PRESS_MOUSE.getAbbrev());
int button = e.getButton();
int xButton = 16;
if (button == 3) {
xButton = 4;
}
writer.println(xButton);
writer.flush();
}

这基本上使用java的套接字将MouseEvent发送到另一台PC。有人可以解释一下为什么 xButton 的值设置为 16 以及 if 语句中发生了什么吗?

最佳答案

好吧,我很抱歉,我已经有一段时间没有使用 Robot 了。所以,数字16来自InputEvent:https://github.com/openjdk-mirror/jdk7u-jdk/blob/master/src/share/classes/java/awt/event/InputEvent.java#L95 - 只是将其硬编码为 16 不太有品味,文档建议使用这些 BUTTONx_MASK 字段( https://docs.oracle.com/javase/7/docs/api/java/awt/Robot.html#mousePress(int) ),并且本地源建议使用 BUTTONx_DOWN_MASK (向上滚动几行)。
4 更糟糕,因为对于按钮 2 和 3,源仅引用 Event.ALT/META_MASK,但 Event.META_MASK 最后实际上最终是 4 ( https://github.com/openjdk-mirror/jdk7u-jdk/blob/master/src/share/classes/java/awt/Event.java#L84 ),所以这就是怀疑的右键单击。

关于java - 理解 Java 中的 Robot 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48428937/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com