Java JSlider:字典已弃用方法 setLabelTable,我还应该使用什么?

Java JSlider: Dictionary is deprecated for method setLabelTable, what else should I use?

我目前正在尝试为 Java 中的 JSlider 设置自定义标签。

我查看了 Java API 并找到了这个方法:public void setLabelTable(Dictionary labels)

不幸的是 Dictionary class 和它的子class Hashtable 已经过时了。

根据这个问题的回答:Using Java Dictionary...use a Hashtable?

Hashtable class 已 'replaced' 与 HashMap

所以我尝试发送 HashMap 而不是 Hashtable,我非常怀疑它是否有效。

不出所料,编译器给了我这个错误:

incompatible types: HashMap<Integer, JLabel> cannot be converted to Dictionary

我可以选择使用 DictionaryHashtable class 并使用 Xlint:Deprecated 编译,它会给我想要的结果。

但我不想使用已经过时一段时间的东西。

我应该用什么代替 setLabelTable(Dictionary labels)

或者除了使用 setLabelTable(Dictionary labels) 没有其他方法?

我想在不使用已弃用或过时的情况下生成此 GUI API。

DictionaryHashtable class 已弃用以备将来使用,不应用于仅需要存储键值对的应用程序。 (如您所见,新应用程序应使用集合 class HashMap。)

但是,对于像您这样调用另一个需要 DictionaryHashtable 作为参数的函数的应用程序,使用较旧的 classes 仍然完全没问题。你真的别无选择。

如果您想最大程度地减少项目中使用旧 classes 的代码量,您可以使用 HashMap 来存储标签,然后使用 setLabelTable连同从 HashMap 构建 HashtableHashtable 构造函数,如下所示:

 mySlider.setLabelTable(new Hashtable(myLabelHashMap))