2 つの jbutton (jslider の左右) と 1 つの jslider があります。
左の Jbutton でマウスを押すと、jslider を左に移動する必要があります。
右の Jbutton でマウスを押すと、jslider を右に移動する必要があります。
どうすればこれを解決できるか教えてください。
ありがとうジョティ
ここによると、あなたがする必要があるのは使用することだけですsetValue(int)
void setValue(int)
スライダーの現在の値を設定または取得します。setメソッドは、スライダーのノブも配置します。
コンポーネント全体ではなく、実際のポインタを移動することを意味していると思います。JSlider全体を移動する場合は、この.setLocation(int x, int y)
メソッドを使用する必要があります。
編集:それはあなたが何をする必要があるかによります。プログラムでスライダーを移動する場合は、Thread.sleep(timeout)を設定して、スレッドがしばらく一時停止し、スライダーの移動を確認できるようにすることができます。一方、ボタンを押すたびにスライダーを1回移動させることができます。たとえば、「左」ボタンを押すたびに、スライダーの値が10ずつ減少します。右ボタンの場合は逆になります。後者は(少なくとも私の知る限りでは)最も広く使用されているアプローチのようです。
JSlider#setValue
スライダーの位置を値に設定するために使用されます。JSlider#getMinimum
値は (を含む) ~の間の範囲にある必要がJSlider#getMaximum
あり、スライダーは値を「ピクセル位置」に変換します。
編集 - で遅延を導入できますThread#sleep
。次の「setValue」メッセージを JSlider に送信する前に、数ミリ秒「待機」する必要があります。
ボタンが押されている間、あなたはループにいます:
while(isPressed) {
adjustSliderByOneTick();
try {
Thread.sleep(100); // 100 milliseconds for a first test
} catch (InterruptedException e) {
break;
}
}
ボタンが離されると、isPressed
フラグが設定されfalse
、上記のループが終了します。
別の方法として、とSpinSlider
を組み合わせた を見てみるとよいでしょう。また、キーボードとの相性もよく、ほとんどのプラットフォームでユーザーの好みのキーボード リピート レートに調整されます。JSlider
JSpinner