2

最初のコンボの選択された項目が変更された場合、2 番目のコンボは選択された項目を保持しますが、スピナーを再呼び出しします (スピナーは 2 番目のボックスにのみリンクされます)。私の問題は、これを行うときにスピナーの stateChange リスナーをトリガーできないことです。

次のコードは、最初のボックスが変更されたときに最後の項目を再選択するように 2 番目のボックスを強制するコードです (ここでは何も問題はなく、問題なく動作します)。

String orientare = (String) orientareComboBox.getSelectedItem();
orientareComboBox.setSelectedItem(orientare);

これは、2 番目のボックス actionListener のコードです。

public void actionPerformed(ActionEvent e) {

            JComboBox combo = (JComboBox) e.getSource();
            String value = combo.getSelectedItem().toString();
            if (value.equalsIgnoreCase("oblica"))
            {
                unghiSpinner.setEnabled(true);

                double unghi = (double) unghiSpinner.getValue();
                unghiSpinner.setValue(new Double(unghi));

            }
}

そして、スピナーのリスナー:

           public void stateChanged(ChangeEvent e) 
        {
            if (unghiSpinner.isEnabled())
            {
               // do something
            }
        }

unghiSpinnerリスナーをトリガーするためにどのコマンドを使用すればよいかわかりませんsetValue()。実行できないためです。

4

1 に答える 1

5

上記のコードで JSpinner の値を変更しているようには見えません。スピナーの値を以前と同じ値に設定するだけで、リスナーをトリガーすることはないようです。変更リスナーの起動をトリガーするには、監視対象のエンティティの状態を変更する必要があります。

于 2012-06-30T12:01:10.747 に答える