JSlider が浮動小数点数を処理できないことに気付きました。Swing/AWT の代替案を推奨できる人はいますか?
編集:またはいくつかの説明の回避策。
JSlider が浮動小数点数を処理できないことに気付きました。Swing/AWT の代替案を推奨できる人はいますか?
編集:またはいくつかの説明の回避策。
一般に、スライダーは数値の範囲を扱います。実際の実装から、各スライダーには 2 つの要素が必要です。
あなたを悩ませているのは「有限数」です。有限数の増分がないと、スライダーは画面に収まりません。有限数のインクリメントでfloat
は、2 つのインクリメンタル「ステップ」の間にある数を選択することはできません。
要するに、それは不可能です。したがって、回避策は次のとおりです。
0.0f
to10.0f
でも何でもかまいませんが、範囲が必要です。0.1f
、または0.001f
何でもかまいませんが、問題ではありませんが、インクリメントが必要です。インクリメント付きの5.0f
toの例:10.0f
0.1f
((10.0f - 5.0f) / 0.1f) + 1 = 51 increments (0 to 50)
updateSlider(float value) {
if (value > 10.0f) {
Slider.setValue(50);
} else if (value < 5.0f) {
Slider.setValue(0);
} else {
Slider.setValue((int)Math.round((value - 5.0f)/0.1f));
}
}
float updateFloat(Slider slider) {
int value = slider.getValue();
return 5.0f + (slider.getValue() * 0.1f);
}