如何解决JOptionPane:设置外观后,安装“自定义”图标无效
|| 我想安装一个自定义图标来代替标准的JOptionPane信息图标。 我试过了ImageIcon myCustomIcon = ...;
UIManager.put(\"OptionPane.informationIcon\",myCustomIcon);
但是,由于以下几行,显然这没有效果:
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
注释掉此行将给出正确的行为。我当然尝试过在设置外观之前/之后都将图标放入UIManager。
我可以以某种方式将两者结合起来以全局覆盖信息图标吗?
我正在使用Ubuntu 10.04。
问候,
莫滕
解决方法
使用Metal和Windows LAF,对我来说效果很好。
也许您的LAF不支持UIManager属性。请查看UIManager默认值以获取属性列表。
如果您需要更多帮助,请在SSCCE上张贴说明问题的信息。
, 在设置外观后,您是否尝试过通过以下方式指定图标:
JOptionPane.showMessageDialog(frame,\"Eggs are not supposed to be green.\",\"Inane custom dialog\",JOptionPane.INFORMATION_MESSAGE,myCustomIcon);
更新:
以下代码在我的Windows 7上正常运行:
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class OptionPaneIcon {
public static void main (String[] args) {
ImageIcon myCustomIcon = loadImageIcon(\"image.png\");
UIManager.put(\"OptionPane.informationIcon\",myCustomIcon);
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException ex) {
} catch (InstantiationException ex) {
} catch (IllegalAccessException ex) {
} catch (UnsupportedLookAndFeelException ex) {
}
JOptionPane.showMessageDialog(null,\"Hello!\");
}
/** Returns an ImageIcon,or null if the path was invalid. */
private static ImageIcon loadImageIcon(String path) {
URL imgURL = OptionPaneIcon.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println(\"Couldn\'t find file: \" + path);
return null;
}
}
}
附言抱歉,我不耐烦。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。