在我的程序中,我想使用一个 JSpinner 来表示一个数字。这个数字稍后将用于计算某些东西。每次用户单击其中一个微调器按钮(向上或向下)时,我都希望结果自动更新。由于您无法将 ActionListener 添加到 JSpinner (我认为这很奇怪),我在这里问如何做类似的事情(我已经为此准备好了 ActionListener,可以在任何其他侦听器中更改课程)。
问问题
7364 次
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 回答