9

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

有什么建议么?

4

4 回答 4

9

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

this.setIconImage(STANDARD_ICON);

您也可以在此处捆绑其他标准内容,例如将框架的窗口度量存储为用户偏好、管理启动窗格等。

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

于 2008-09-19T16:07:08.930 回答
2

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

如果您将 JRE 与您的应用程序一起分发,您可以用您自己的图标替换 java exe/dll/rt.jar 中的咖啡杯图标资源。这可能不是很合法,但有可能......

于 2008-09-19T17:42:53.910 回答
1

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

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

于 2008-09-19T17:40:43.790 回答
0

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

于 2008-09-19T15:57:23.040 回答