Java Swing JPanel能保持字符串值吗?

mlw*_*lwn 1 java swing jpanel

Java Swing JPanel可以保存一个String值,而不是可以修改/访问的值,我可以保存一些信息吗?

我看不到其他选择,只是实现我自己的类,持有JPanel和String ...只是试图节省一些空间/编码..

我喜欢Component超类的setName/getName ...使用它有什么不便吗?

cam*_*ckr 6

是的,它可以.任何Swing组件都可以保存client properties特定组件.

请参阅JComponent 的putClientProperty(...)getClientProperty(...)方法.使用此方法,您可以定义任意数量的客户端属性:

panel.putClientProperty("Title", "Panel1");
panel.putClientProperty("Description", "some text for the description");
Run Code Online (Sandbox Code Playgroud)

如果您只想使用字符串名称唯一标识面板,也可以使用setName(..)getName()方法.许多IDE将使用此属性.

当然,如果您正在创建具有多个Swing组件和相关实例变量的面板,那么您可能会扩展JPanel并自定义其行为.

我喜欢Component超类的setName/getName ...使用它有什么不便吗?

如果您认为"name"属性足以描述您要存储的数据,那么这是存储数据的最有效方式.但是,如果数据实际上不是组件的名称,则不要仅仅因为它易于使用而强制数据.此外,某些IDE可能会将此属性用于通用调试或消息传递.它可以检查在错误消息中显示该值以帮助识别特定组件.