Swing/ReverseDirectionSpinner の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/ReverseDirectionSpinner へ行く。
- Swing/ReverseDirectionSpinner の差分を削除
--- 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 --- * 概要 [#summary] `JSpinner`の矢印ボタンをクリックした場合の値の増減、または前次の方向を入れ替えます。 #download(https://drive.google.com/uc?id=1j0E3gvCn6ljBBqAu6CjIbunUZwhW2h0s) * サンプルコード [#sourcecode] #code(link){{ 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(); } }); }} * 解説 [#explanation] - `stepSize: 1` -- `SpinnerNumberModel`でシーケンスの要素間の差を正の値に設定 - `stepSize: -1` -- `SpinnerNumberModel`でシーケンスの要素間の差を負の値に設定 -- `getNextValue()`メソッドと`getPreviousValue()`メソッドによって計算される値変更のサイズがマイナスになるので上矢印ボタンをクリックすると数値は減少、下矢印ボタンで増加に入れ替わる - `SpinnerListModel` -- デフォルト -- 上矢印ボタンのクリックで前の値、下矢印ボタンで次の値を返す -- デフォルト - `Reverse direction SpinnerListModel` -- `SpinnerListModel#getNextValue()`メソッドと`SpinnerListModel#getPreviousValue()`メソッドを入れ替えるようオーバーライドして上矢印ボタンのクリックで次の値、下矢印ボタンで前の値を返すよう変更 * 参考リンク [#reference] - [http://www.java2s.com/Code/Java/Swing-JFC/Aprogramtotestspinners.htm A program to test spinners. : Spinner « Swing JFC « Java] - [https://stackoverflow.com/questions/61658679/java-jspinner-increase-value-with-down-arrow swing - Java JSpinner increase value with down arrow - Stack Overflow] - [[JSliderの順序を反転>Swing/InvertedSlider]] * コメント [#comment] #comment #comment