我想监听JSpinner中SpinnerNumberModel的值的更改。
我创建了一个PropertyChangeSupport并将模型放入其中。
我创建了一个PropertyChangeSupport并将模型放入其中。
我需要propertyChangeListener,因为它展示了属性的旧值和新值。
以下代码片段不起作用:当我单击JSpinner时,propertyChange
方法没有输出任何内容。
简单的ChangeListener只提供新值,但我也需要旧值,如何获取?
package de.unikassel.jung;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import javax.swing.JFrame;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
public class PropertyChangeTest implements PropertyChangeListener {
public static void main(String[] args) {
new PropertyChangeTest();
}
public PropertyChangeTest() {
JFrame frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
int value = 1;
int min = 0;
int max = 10;
int step = 1;
SpinnerNumberModel spinnerModel = new SpinnerNumberModel(value, min, max, step);
PropertyChangeSupport pcs = new PropertyChangeSupport(spinnerModel);
pcs.addPropertyChangeListener("value", this);
JSpinner spinner = new JSpinner(spinnerModel);
frame.getContentPane().add(spinner);
frame.setVisible(true);
}
@Override
public void propertyChange(PropertyChangeEvent evt) {
System.out.println(evt);
System.out.println(evt.getSource());
}
}
checkBox.getAccessibleContext().addPropertyChangeListener(listener)
。 - timaschewJSpinner
是一个拥有嵌套的DefaultEditor
的组合体。此外,也请参阅这里的注意事项。 - trashgod