java - Java Swing JPanel 可以保存一个字符串值吗?

标签 java swing jpanel

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/

相关文章:

java - 如何将 JFileChooser 限制为目录?

JavaFx 嵌入 Swing JDesktopPane 不显示任何内容

java - 简单的GUI Java布局问题

java - 从 Action 监听器调用 swing JPanel

java - JList 没有出现在 JPanel 中

java - Spring Data 存储库实际上是如何实现的?

java - 使用 Java-JDBC 从 Oracle 数据库读取数据时的字符编码

java - 我的单选按钮没有与我的 JButton 交互

java - 为什么 g2d.rotate 到 90 度不完全是 90 度? JAVA

java - 我为 JFormattedTextField 制作的 NumberFormatter 函数不允许输入十进制数字