Я пытаюсь заставить свой код прокручиваться вверх в диапазоне от 0 до 255, используя Leap Motion (поэтому печатает: 1, затем 2, затем 3 на кругах по часовой стрелке и 3, 2, 1 на кругах по часовой стрелке).
Действия жеста находятся в методе void onFrame().
Мне нужно увеличивать число каждый раз, когда обнаруживается круговой жест, и выводить каждое число. В нынешнем виде мой код выполняет приращение в фоновом режиме и подсчитывает только тогда, когда я ввожу цифру (поэтому моя подсчитанная цифра отображается во втором приглашении). Это плохо, потому что пользователь на самом деле не может видеть, какое число он фиксирует в подсказке порога.
Пожалуйста, помогите, я новичок в этом, и это замедляет мой проект!
Я предоставил урезанные классы, чтобы выделить проблему.
Класс слушателя:
public class ImageJListener extends Listener {
public Robot robot;
public int promptValue;
// potentially look into atomic objects and non atomic objects in case this has a threading issue
public ImageJListener() {
this.promptValue = 0;
}
public int getPromptValue() {
return this.promptValue;
}
...
public int onFrame(Controller controller) {
com.leapmotion.leap.Frame frame = controller.frame();
for (Gesture gesture : frame.gestures()) {
if (gesture.type() == Type.TYPE_CIRCLE) {
CircleGesture circle = new CircleGesture(gesture);
if (circle.pointable().direction().angleTo(circle.normal()) <= Math.PI / 4) {
promptValue++;
return promptValue;
} else {
promptValue--;
return promptValue;
}
} else if (gesture.type() == Type.TYPE_KEY_TAP) {
KeyTapGesture Tap;
Tap = new KeyTapGesture(gesture);
try {
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
} catch (AWTException awt) {
}
}
}
}
}
Класс плагина (который вызывает переменную promptValue для заполнения подсказки:
IJ.setRawThreshold(imp, IJ.getNumber("prompt", (listener.getPromptValue())), IJ.getNumber("prompt", (listener.getPromptValue())), null);
Спасибо заранее,
Райан