私は、Leap Motionを使って0から255の間でスクロールアップするようにコードを取得しようとしています(印刷する:1、次に2、次にcwサークルで3、 、acwサークルで1)。Java:Leapモーションの返り値をvoidから
ジェスチャーの動作は、void onFrame()メソッドにあります。
サークルジェスチャーが検出され、1つの番号ごとに出力されるたびに数字を増やす必要があります。それが立てば、私のコードはバックグラウンドで増分を行い、数字を入力するとカウントアップします(したがって、カウントアップされた数値は2番目のプロンプトに表示されます)。これは、ユーザーがしきい値プロンプトにコミットしている番号を実際に見ることができないため、悪いことです。
私はこれをかなり新しくしており、プロジェクトを遅くしています。
私は問題がどこにあるかを強調表示するために、削除されたクラスを提供しました。
リスナークラス:プロンプトを移入するpromptValue変数を呼び出し
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) {
}
}
}
}
}
プラグインクラス(:事前に
IJ.setRawThreshold(imp, IJ.getNumber("prompt", (listener.getPromptValue())), IJ.getNumber("prompt", (listener.getPromptValue())), null);
多くのおかげで、
ライアン
私はObservableクラスを使ってアップデートをポンピングすることを考えていました。それをカットすると思いますか? –
単一の関数を呼び出すのは難しいようですが、もっと多くのデータを送信し、次にこの単一の整数だけを送信する必要がある場合は、それは価値があります。私は本当にJavaの人ではないので、Javaスタイルのガイダンスを私に与えるのは愚かです。 –