我正在尝试设置多个 JSpinners 来编辑单个 Date 值 - 即一个微调器数天,一个数月等。
似乎我应该能够SpinnerModel
在几个 JSpinners 之间共享一个,但是我在使用这种方法时遇到了困难。
我尝试的基本上如下:
SpinnerDateModel model = new SpinnerDateModel();
JSpinner dayPeer = new JSpinner(model);
dayPeer.setEditor(new JSpinner.DateEditor(dayPeer, "dd"));
JSpinner monthPeer = new JSpinner(model);
monthPeer.setEditor(new JSpinner.DateEditor(monthPeer, "MM"));
这样做时,我发现更改一个值会重置另一个值。问题似乎起源于JSpinner.DefaultEditor.propertyChange()
,它将编辑器文本解析为日期,然后setValue()
用它调用。
因此,看起来我还需要使用自定义propertyChange()
方法实现自定义编辑器组件。我终于走上了正确的轨道,还是我错过了一些明显的东西?