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
我可以选择使用 Dictionary
和 Hashtable
class 并使用 Xlint:Deprecated
编译,它会给我想要的结果。
但我不想使用已经过时一段时间的东西。
我应该用什么代替 setLabelTable(Dictionary labels)
?
或者除了使用 setLabelTable(Dictionary labels)
没有其他方法?
我想在不使用已弃用或过时的情况下生成此 GUI API。
Dictionary
和 Hashtable
class 已弃用以备将来使用,不应用于仅需要存储键值对的应用程序。 (如您所见,新应用程序应使用集合 class HashMap
。)
但是,对于像您这样调用另一个需要 Dictionary
或 Hashtable
作为参数的函数的应用程序,使用较旧的 classes 仍然完全没问题。你真的别无选择。
如果您想最大程度地减少项目中使用旧 classes 的代码量,您可以使用 HashMap
来存储标签,然后使用 setLabelTable
连同从 HashMap
构建 Hashtable
的 Hashtable
构造函数,如下所示:
mySlider.setLabelTable(new Hashtable(myLabelHashMap))
我目前正在尝试为 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
我可以选择使用 Dictionary
和 Hashtable
class 并使用 Xlint:Deprecated
编译,它会给我想要的结果。
但我不想使用已经过时一段时间的东西。
我应该用什么代替 setLabelTable(Dictionary labels)
?
或者除了使用 setLabelTable(Dictionary labels)
没有其他方法?
我想在不使用已弃用或过时的情况下生成此 GUI API。
Dictionary
和 Hashtable
class 已弃用以备将来使用,不应用于仅需要存储键值对的应用程序。 (如您所见,新应用程序应使用集合 class HashMap
。)
但是,对于像您这样调用另一个需要 Dictionary
或 Hashtable
作为参数的函数的应用程序,使用较旧的 classes 仍然完全没问题。你真的别无选择。
如果您想最大程度地减少项目中使用旧 classes 的代码量,您可以使用 HashMap
来存储标签,然后使用 setLabelTable
连同从 HashMap
构建 Hashtable
的 Hashtable
构造函数,如下所示:
mySlider.setLabelTable(new Hashtable(myLabelHashMap))