Java JSpinner实时更改侦听器
我有change listener,它只在Java JSpinner实时更改侦听器,java,swing,Java,Swing,我有change listener,它只在command1RepeatTimeJSpinner失去焦点时才打印值。我想在按箭头或在JSpinner中键入value更改值后打印command1RepeatTimeint值(不需要失去焦点) 代码: 我找到了答案: JComponent comp = spinner.getEditor(); JFormattedTextField field = (JFormattedTextField) comp.getCompon
command1RepeatTime
JSpinner失去焦点时才打印值。我想在按箭头或在JSpinner中键入value更改值后打印command1RepeatTime
int值(不需要失去焦点)
代码:
我找到了答案:
JComponent comp = spinner.getEditor();
JFormattedTextField field = (JFormattedTextField) comp.getComponent(0);
DefaultFormatter formatter = (DefaultFormatter) field.getFormatter();
formatter.setCommitsOnValidEdit(true);
spinner.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
System.out.println("value changed: " + spinner.getValue());
}
});
答案是配置JFormattedTextField中使用的格式化程序,JFormattedTextField是微调器编辑器的子项:formatter.setCommitsonValidIt(true)代码>
似乎有一些建议,你试过了吗?
JComponent comp = spinner.getEditor();
JFormattedTextField field = (JFormattedTextField) comp.getComponent(0);
DefaultFormatter formatter = (DefaultFormatter) field.getFormatter();
formatter.setCommitsOnValidEdit(true);
spinner.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
System.out.println("value changed: " + spinner.getValue());
}
});