如何设置所有Java Swing窗口的默认图标?
否则我必须为我创建的每一帧设置图标。
你有什么建议? 简单的hackings也被接受。
很多人更新:如果您建议的方法可以保持现有的框架创建代码不变,那么最佳。 THX
答案 0 :(得分:2)
创建一个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();
}
}
答案 1 :(得分:0)
要使Windows图标全局更改而不更改旧代码,我正在使用此代码段
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$
}