从ImageIcon中删除自定义背景

时间:2015-05-21 12:26:06

标签: java swing background icons jtree

正如标题所说,我该如何从imageIcon中删除背景?

让我们说..我已经JTree(但它可以是每个JComponent)我想为其叶子节点设置一个图标。

myDefaultTreeCellRendere.setLeafIcon(new ImageIcon(icon));

图标有白色背景,我想删除它。那可能吗? 我在Stackoverflow上阅读了一些答案,但是使用了BufferedImage并且从网络中检索了图标并存储在URL对象中...我的图标是本地的,而不是。

2 个答案:

答案 0 :(得分:-1)

您需要使用支持透明度的图像格式,例如GIF或PNG。您可以查找具有透明背景的新图标,也可以使用图像编辑器修改当前图像(Photoshop或Gimp会这样做)。

答案 1 :(得分:-2)

您可以做的是为ImageIcon对象提供与图像大小相同的大小。例如,如果您的图片的sioze为40x40,则执行

ImageIcon img = new ImageIcon("path_to_image");
img.setPreferredSize(new Dimension(40, 40));
myDefaultTreeCellRendere.setLeafIcon(img);

+1如果有效:D