Java Swing JPanel 是否可以保存一个字符串值,而不是可以修改/访问的字符串值,我可以在其中保存一些信息?
除了实现我自己的包含 JPanel 和 String 的类之外别无选择……只是想节省一些空间/编码……
我喜欢 Component 父类(super class)的 setName/getName...使用它有什么不便吗??
最佳答案
是的,可以。任何 Swing 组件都可以保存特定组件的客户端属性
。
请参阅 JComponent 的 putClientProperty(...)
和 getClientProperty(...)
方法。使用这种方法,您可以定义任意数量的客户端属性:
panel.putClientProperty("Title", "Panel1");
panel.putClientProperty("Description", "some text for the description");
如果您只想使用字符串名称唯一标识面板,您还可以使用 setName(..)
和 getName()
方法。许多 IDE 将使用此属性。
当然,如果您正在创建一个包含多个 Swing 组件和相关实例变量的面板,那么您可能会扩展 JPanel 并自定义其行为。
I like the setName/getName of the Component super class... is there any inconvenience in using that ??
如果您觉得“名称”属性充分描述了您要存储的数据,那么这是存储数据的最有效方式。但是,如果数据实际上不是组件的名称,那么不要仅仅因为它易于使用而强制使用数据。也有可能某些 IDE 可能会使用此属性进行一般调试或消息传递。它可能会检查在错误消息中显示此值以帮助识别特定组件。
关于java - Java Swing JPanel 可以保存一个字符串值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24789755/