如何在Swing中全局设置应用程序的图标?

时间:2008-09-19 15:54:01

标签: java swing

我知道我可以为每个表单指定一个表单,或者为根表单指定一个,然后它将级联到所有子表单,但我想有一种方法可以覆盖所有的默认Java咖啡杯即使是那些我可能会忘记的东西。

有什么建议吗?

4 个答案:

答案 0 :(得分:9)

您可以将根表单(我假设您的意思是JFrame)作为您自己的JFrame子类,并将标准功能放在其构造函数中,例如:

this.setIconImage(STANDARD_ICON);

您也可以在此处捆绑其他标准内容,例如将框架的窗口指标记忆为用户首选项,管理启动窗格等。

由此产生的任何新帧也将是此JFrame子类的实例。您唯一需要记住的是实例化您的子类,而不是JFrame。我认为没有任何替代方法可以记住这样做,但至少现在要记住子类而不是setIconImage调用(可能还有其他功能)。

答案 1 :(得分:2)

还有另外一种方法,但它更像是一种“黑客”,而不是真正的修复......

如果您正在使用您的应用程序分发JRE,您可以使用您自己的图标替换java exe / dll / rt.jar中的咖啡杯图标资源。它可能不是非常合法,但它有可能......

答案 2 :(得分:1)

此外,如果您有一个“主”窗口并正确设置其图标,只要您将该主窗口用作任何Dialog类的“父”,它们就会继承该图标。但是,任何新的框架都需要在它们上面设置图标。

正如Paul / Andreas所说,继承JFrame将是你最好的选择。

答案 3 :(得分:0)

扩展JDialog类(例如将其命名为MyDialog)并在构造函数中设置图标。然后所有对话框都应该扩展您的实现(MyDialog)。