私はCruncherの助けを借りてコードを更新しました。しかし、while(pressed)ループが実行されている間は、他のイベントは&と呼ばれず、実行されたままです。EDIT - Java whileループはイベントが呼び出されないことを意味します
パブリッククラス機能はNativeMouseListener {
private Robot robot;
private boolean pressed = false;
private boolean skip = false;
public Function()
{
try {
robot = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}
}
private void repeatMouse()
{
skip = true;
robot.mouseRelease(InputEvent.BUTTON1_MASK);
while (pressed)
{
System.out.println("pressed while loop " + pressed);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
@Override
public void nativeMouseClicked(NativeMouseEvent nativeMouseEvent) {
}
@Override
public void nativeMousePressed(NativeMouseEvent nativeMouseEvent) {
System.out.println("GG");
if (!(nativeMouseEvent.getButton() == NativeMouseEvent.BUTTON1)) {
System.out.println("Returned.");
return;
}
if (!Native.get().getData().getEnabled())
{
System.out.println("Isn't enabled.");
return;
}
pressed = true;
repeatMouse();
}
@Override
public void nativeMouseReleased(NativeMouseEvent nativeMouseEvent) {
System.out.println("released");
if (!(nativeMouseEvent.getButton() == NativeMouseEvent.BUTTON1)) {
System.out.println("Returned 2");
return;
}
if (!skip)
{
System.out.println("pressed " + pressed);
pressed = false;
System.out.println("pressed " + pressed);
} else {
skip = false;
}
}
}を実装し
whileループが呼び出されてからイベントを停止する理由を任意のアイデア?マルチスレッドやそのジャズのいくつかを使用する必要がありますか?
ありがとうございます。
1の場合
だけの推測にごmouseReleaseハンドラを変更しますが、おそらく、その後、最初にマウスクリックイベントの束を、イベントをマウスを送信する必要があり、かつ停止する実際のマウスアップイベントをリッスン。 – Cruncher
@Cruncher "real"イベント?私は押されてリリースされ、ブール値を設定しています。これは間違っていますか? – Archie
私の答えに記載されているコードがあなたに役立ったかどうか教えていただけますか? – Cruncher