java - 具有共享 SpinnerModel 的 JSpinners

标签 java swing jspinner

我正在尝试设置多个 JSpinners 来编辑单个日期值 - 即一个微调器用于几天,一个用于几个月等。

似乎我应该能够在多个 JSpinner 之间共享一个 SpinnerModel,但我在使用这种方法时遇到了困难。

我尝试的基本上如下:

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() 方法实现自定义编辑器组件。我终于走上了正确的轨道,还是错过了一些明显的东西?

最佳答案

可能是在 How to Use Spinners 上的 Swing 教程中找到的 CyclingSpinnerListModel会给你一些想法。

关于java - 具有共享 SpinnerModel 的 JSpinners,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7676245/

相关文章:

java - 没有值从 php 返回到 android 应用程序

java - Java多线程,但只有一个线程工作

java - 在 JPA 中使用相同的实体键映射多个 HashMap

java - GUI 未正确更新

java - 我的 JSpinner.DateEditor 有什么问题?

java - 从 JSpinner 获取日期并放入具有 DATE 格式的 MySQL 数据库列

java - 如何将 ConcurrentHashMap.merge() 与共享 AtomicInteger 结合使用

java - 如何在 JList 中的组件上启用事件

Java JFrame gui - 为什么按钮不显示?

java - JSpinner.DateEditor 5分钟跳转