7

私のプログラムでは、数値に JSpinner を使用したいと考えています。この数値は、後で何かを計算するために使用されます。ユーザーがスピナー ボタンの 1 つ (上または下) をクリックするたびに、結果が自動的に更新されるようにします。ActionListener を JSpinner に追加することはできないので (これは本当に奇妙だと思います)、これと同様のことを行う方法をここで尋ねています (既に ActionListener の準備ができており、他のリスナーで変更できます)。コース)。

4

2 に答える 2

10

ChangeListenerをスピナーに追加できます。これは、ボタンの押下 (またはフィールドの直接編集) によってトリガーされます。

spinner.addChangeListener(new ChangeListener() {      
  @Override
  public void stateChanged(ChangeEvent e) {
    // handle click
  }
});
于 2013-04-26T19:41:03.293 に答える
3

ユーザーがスピナー ボタン (上または下) のいずれかをクリックするたびに、結果が自動的に更新されるようにします。

スピナーのエディターとして使用されているテキスト フィールドの に を追加しDocumentListenerます。Document

編集:

JSpinner.DefaultEditor editor = (JSpinner.DefaultEditor)number.getEditor();
JTextField textField = editor.getTextField();
textField.getDocument().addDocumentListener( new DocumentListener()
{
    public void insertUpdate(DocumentEvent e)
    {
        System.out.println("insert");
    }

    public void removeUpdate(DocumentEvent e)
    {
        System.out.println("remove");
    }

    public void changedUpdate(DocumentEvent e) {}
});
于 2013-04-26T19:33:08.027 に答える