gpt4 book ai didi

java - JFrame setTitle 不工作

转载 作者:行者123 更新时间:2023-11-30 08:42:23 25 4
gpt4 key购买 nike

不确定为什么会发生这种情况,但是当我尝试更改 JFrame 上的标题时它没有更新。 JFrame 是静态的,我这样调用它:

Assets.frame.setTitle("test");

我有一段代码,我在其中传递了一个文件名,它似乎工作正常,因为当我打印出 Assets.frame.getTitle() 时,它打印出了我想要的内容标题是。但在实际的 JFrame 上,它不会更改标题。我也在程序的其他部分调用了该方法,它似乎在那里工作。是否有一些特殊字符可能导致该方法无法更新我不知道的实际帧?

编辑:

我正在尝试做什么(打开一个文件)

public static void open() {
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
int result = chooser.showOpenDialog(Assets.frame);
if (result == JFileChooser.APPROVE_OPTION) {
MyFile myFile = new MyFile(chooser.getSelectedFile().getPath());
Main.setTitle(Constants.current_file.getName().substring(0, mapFile.getName().indexOf('.')));
}
}

Main.setTitle() 方法是:

public static void setTitle(String title) {
Assets.frame.setTitle(title + " - " + "My Program");
}

框架在程序执行附近定义和实例化,并且在按下 JButton 时调用 open 方法。这是我在项目中唯一的JFrame,它一直在使用,直到程序退出。

我不知道它的可重现性如何,因为当我运行另一个也调用 Main.setTitle() 的类似方法时它会起作用。只有这一个实例不起作用。

最佳答案

What I'm trying to do (open a file)

然后也许可以看看 How to Use File Choosers 上的 Swing 教程部分作为起点。它将向您展示如何更好地构建您的程序,这样您就不需要到处都需要静态变量和方法。您可以下载演示代码并使用它,然后根据您的需要进行修改。

然后在您的逻辑中,如果您想更新您的框架的标题,那么您可以使用 SwingUtilities.windowForComponent(...) 方法来获取您的组件添加到的框架。

您发布的代码仍然无法帮助我们理解您的代码设计或调用方法的上下文,所以为什么不能针对您的问题给出具体的答案。这就是为什么要求您提供“可运行示例”的原因。但我建议你先重组你的程序。

关于java - JFrame setTitle 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34585361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com