0

JSpinner最小値セットと最大値セット用の2つがあります。

min に何らかの値が設定されている場合、ユーザーはJSpinner最大テキストフィールドの最小テキストフィールド値未満を入力できず、その逆も同様です。

keylistner と別のトリックを使用して検証するにはどうすればよいですか?

4

4 に答える 4

2

カスタムスピナーモデルを設定できます。数字を試す

new JSpinner(new SpinnerNumberModel(initvalue,minvalue,maxvalue));

http://docs.oracle.com/javase/tutorial/uiswing/components/spinner.html

于 2012-11-27T11:33:02.493 に答える
2

SpinnerNumberModel最小値と最大値を設定する場所を使用できます

于 2012-11-27T11:28:29.460 に答える
2

ChangeListener各スピナー(モデル)にを取り付ける必要があります。

イベントが発生したらstateChanged、イベントが発生したモデルを特定し、それに応じて他のモデルを更新する必要があります。

したがって、イベントが最小モデルから発生した場合は、最大モデルの最小値を更新する必要があります。

これにより一連のカスケード更新が発生する可能性があるため、そのための準備が必要であることに注意してください

于 2012-11-27T11:34:45.003 に答える
0

MadProgrammerが示唆しChangeListenerように、正しいアプローチです。

簡単なコード サンプルを次に示します。

    //class fields
    JSpinner lowSpin = new JSpinner(new SpinnerNumberModel()); 
    JSpinner highSpin = new JSpinner(new SpinnerNumberModel());

    ChangeListener spinListener = new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            int low = (int) lowSpin.getValue();
            int high = (int) highSpin.getValue();
            if(high < low)
                JOptionPane.showMessageDialog(null, "HIGH should not be less than LOW."); //you can change 'null' to the name of your JFrame
        }
    };

    lowSpin.addChangeListener(spinListener);
    highSpin.addChangeListener(spinListener);
于 2012-11-27T14:46:32.870 に答える