Swing/ReverseDirectionSpinner のバックアップ(No.2)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/ReverseDirectionSpinner へ行く。
- 1 (2020-07-20 (月) 02:57:58)
- 2 (2021-12-16 (木) 09:54:04)
- category: swing folder: ReverseDirectionSpinner title: JSpinnerの矢印ボタンによる増減方向を入れ替える tags: [JSpinner, SpinnerNumberModel, SpinnerListModel] author: aterai pubdate: 2020-07-20T02:56:59+09:00 description: JSpinnerの矢印ボタンをクリックした場合の値の増減、または前次の方向を入れ替えます。 image: https://drive.google.com/uc?id=1j0E3gvCn6ljBBqAu6CjIbunUZwhW2h0s
概要
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の順序を反転