如何为所有Java Swing窗口设置默认图标?
否则,我必须为我创建的每个框架设置图标。
您有什么建议吗? 简单的hackings也可以接受。
谢谢。
更新:最好的方法是您建议的方法不会影响现有的框架创建代码。谢谢。
否则,我必须为我创建的每个框架设置图标。
您有什么建议吗? 简单的hackings也可以接受。
谢谢。
更新:最好的方法是您建议的方法不会影响现有的框架创建代码。谢谢。
extends JFrame
。Abstract Class
的子类,并在你的构造函数中调用super
。public abstract class MainFrame extends JFrame {
protected MainFrame() {
this.setIconImage(null); // Put your own image instead of null
}
}
public class ChildFrame extends MainFrame {
public ChildFrame() {
super();
}
}
public class MainFrame extends JFrame {
public MainFrame() {
this.setIconImage(null); // Put your own image instead of null
}
}
public class Frame {
private MainFrame mainframe = new MainFrame();
public Frame() {
super();
}
}
public static void fixWindowsIcons(final List<Image> iconImages) {
PropertyChangeListener l = new PropertyChangeListener() {
private Window prevActiveWindow;
@Override
public void propertyChange(PropertyChangeEvent evt) {
final Window o = KeyboardFocusManager.getCurrentKeyboardFocusManager()
.getActiveWindow();
if (o != null && prevActiveWindow != o) {
prevActiveWindow = o;
List<Image> windowIcons = o.getIconImages();
if (windowIcons == null || windowIcons.size() == 0) {
o.setIconImages(iconImages);
}
}
}
};
KeyboardFocusManager.getCurrentKeyboardFocusManager()
.addPropertyChangeListener("activeWindow", l); //$NON-NLS-1$
}