题
我知道我可以为每个表单指定一个表单,或者为根表单指定一个表单,然后它将级联到所有子表单,但我想有一种方法可以覆盖所有的默认Java咖啡杯即使是那些我可能会忘记的东西。
有什么建议吗?
解决方案
您可以将根表单(我假设您的意思是 JFrame
)作为您自己的 JFrame
的子类,并将标准功能放在其构造函数中,例如:
this.setIconImage(STANDARD_ICON);
您也可以在此处捆绑其他标准内容,例如将框架的窗口指标记忆为用户首选项,管理启动窗格等。
由此产生的任何新帧也将是此 JFrame
子类的实例。您唯一需要记住的是实例化您的子类,而不是 JFrame
。我认为没有任何替代方法可以记住这样做,但至少现在要记住子类而不是 setIconImage
调用(可能还有其他功能)。
其他提示
还有另一种方式,但更多的是“黑客攻击”。然后是一个真正的修复......
如果您正在使用您的应用程序分发JRE,您可以使用您自己的图标替换java exe / dll / rt.jar中的咖啡杯图标资源。它可能不是非常合法,但它有可能......
另外,如果你有一个“主要”窗口,并正确设置其图标,只要您将该主窗口用作“父”窗口即可。对于任何Dialog类,它们都将继承该图标。但是,任何新的框架都需要在它们上面设置图标。
正如Paul / Andreas所说,继承JFrame将是你最好的选择。扩展JDialog类(例如将其命名为MyDialog)并在构造函数中设置图标。然后所有对话框都应该扩展您的实现(MyDialog)。
不隶属于 StackOverflow