JSpinnerの矢印ボタンによる増減方向を入れ替える
Total: 1645
, Today: 1
, Yesterday: 1
Posted by aterai at
Last-modified:
概要
JSpinner
の矢印ボタンをクリックした場合の値の増減、または前次の方向を入れ替えます。
Screenshot
Advertisement
サンプルコード
JSpinner spinner0 = new JSpinner(new SpinnerNumberModel(5, 0, 10, 1));
JSpinner spinner1 = new JSpinner(new SpinnerNumberModel(5, 0, 10, -1));
String[] scale = {
"AAA", "AA+", "AA", "AA-", "A+", "A", "A-",
"BBB+", "BBB", "BBB-", "BB+", "BB", "BB-", "B+", "B", "B-",
"CCC+", "CCC", "CCC-", "CC", "R", "D"
};
JSpinner spinner2 = new JSpinner(new SpinnerListModel(scale));
JSpinner spinner3 = new JSpinner(new SpinnerListModel(scale) {
@Override public Object getNextValue() {
return super.getPreviousValue();
}
@Override public Object getPreviousValue() {
return super.getNextValue();
}
});
View in GitHub: Java, Kotlin解説
stepSize: 1
SpinnerNumberModel
でシーケンスの要素間の差を正の値に設定
stepSize: -1
SpinnerNumberModel
でシーケンスの要素間の差を負の値に設定getNextValue()
メソッドとgetPreviousValue()
メソッドによって計算される値変更のサイズがマイナスになるので上矢印ボタンをクリックすると数値は減少、下矢印ボタンで増加に入れ替わる
SpinnerListModel
- デフォルト
- 上矢印ボタンのクリックで前の値、下矢印ボタンで次の値を返す
Reverse direction SpinnerListModel
SpinnerListModel#getNextValue()
メソッドとSpinnerListModel#getPreviousValue()
メソッドを入れ替えるようオーバーライドして上矢印ボタンのクリックで次の値、下矢印ボタンで前の値を返すよう変更
参考リンク
- A program to test spinners. : Spinner « Swing JFC « Java
- swing - Java JSpinner increase value with down arrow - Stack Overflow
- JSliderの順序を反転