无法在 JInternalFrame GUI 组件中更新标题

Posted

技术标签:

【中文标题】无法在 JInternalFrame GUI 组件中更新标题【英文标题】:Trouble Updating Title in JInternalFrame GUI component 【发布时间】:2010-10-15 02:32:12 【问题描述】:

我正在尝试在我的 Java 项目中更新 JInternalFrame 组件的标题。

该组件是我的 ImageFrame 类的一个实例,它扩展了 JInternalFrame,在我的代码中,我在我的 ImageFrame 类中调用了一个 setter 方法来更新 title 属性。我运行了单元测试并且知道属性正在正确更新,但我不知道如何刷新组件以显示新标题。

有什么想法吗?

仅供参考:我无法让 .repaint() 来解决问题。

这是代码:

File selectedFile = fileChooser.getSelectedFile();        // Gets File selected in JFileChooser
try 
    ImageReadWrite.write(img, selectedFile);              // Writes Image Data to a File
    frame.setFilePath(selectedFile.getAbsolutePath());    // Changes File Location Attribute in Instance Of ImageFrame
    frame.setFileName(selectedFile.getName());            // Changes Window Title Attribute
    //frame.??

catch (Exception event) 
    event.printStackTrace();

所以我需要知道我应该添加什么来使组件更新为新标题

【问题讨论】:

粘贴您用于更新标题的代码。使用 4 个空格进行自动格式化。 【参考方案1】:

您可以尝试替换:

frame.setFileName(selectedFile.getName());

 frame.setTitle(selectedFile.getName());

我不知道你的代码,但是 setFileName 不是 JInternalFrame 公共接口的一部分。

可能您添加了该方法,可能没有。试试我的建议,看看是否有帮助。

【讨论】:

是的,.setFileName() 是我在 ImageFrame 类中编写的 setter 方法,在查看后我意识到虽然我有更改属性的代码,但我没有更新对象的代码。所以我尝试了你的建议并得到了我想要的。非常感谢! 太棒了!,我想类似的事情已经发生了。这就是为什么我要求您粘贴您的代码以确认它。它不时发生 避免继承是避免此类错误的好方法(并且往往会产生更好的代码)。

以上是关于无法在 JInternalFrame GUI 组件中更新标题的主要内容,如果未能解决你的问题,请参考以下文章

JFrame 和 JInternalFrame 有啥区别?

JInternalFrame 向标题栏添加图标

JFrame和JInternalFrame示例学习(转)

JInternalFrame作为模态

用于固定组件位置和可滚动窗口的 Java GUI 布局

第十二周总结