Java 快速单击SWING JLabel中的淡入淡出/重画/修改图像图标

Java 快速单击SWING JLabel中的淡入淡出/重画/修改图像图标,java,swing,icons,jlabel,Java,Swing,Icons,Jlabel,我想要一个带有图标的JLabel,当鼠标单击标签时,它看起来是“单击的”。标签包含一个图像图标。与其将图标更改为另一个图标,我想用另一个颜色集(例如:setXORMode(新颜色(255,0,0))“动态”重新绘制ImageIcon。有人知道如何管理吗 JLabel my_label = new JLabel(""); my_label.setIcon(new ImageIcon(MyClass.class.getResource("/path/to/resources/myicon.jpg")

我想要一个带有图标的JLabel,当鼠标单击标签时,它看起来是“单击的”。标签包含一个图像图标。与其将图标更改为另一个图标,我想用另一个颜色集(例如:setXORMode(新颜色(255,0,0))“动态”重新绘制ImageIcon。有人知道如何管理吗

JLabel my_label = new JLabel("");
my_label.setIcon(new ImageIcon(MyClass.class.getResource("/path/to/resources/myicon.jpg")));
my_label.addMouseListener(new MouseAdapter() {
    @Override
    public void mousePressed(MouseEvent e) {
        //HERE I NEED THE VODOO :)
    }
});

我会在加载图标时修改它的副本。然后在鼠标处理程序中使用
setIcon()

假设您从磁盘读取图像,您会执行类似操作

URL url = getClass().getResource("images/BB.jpg");
BufferedImage picture = ImageIO.read(url);
稍后,当您需要更改XOrMode时,您将执行以下操作:

Graphics2D g = picture.createGraphics();
g.setXORMode(new Color(255,0,0) )
g.dispose();
如果要淡入淡出/淡出,我建议使用。此外,如果要在标签中的图像之外重新绘制标签本身的部分,可以覆盖
void paintComponent(Graphics g)


一个很好的资源,你可能会考虑的是这本书。它充满了这样的东西。如果你从第4章看网站上的例子,有些样本图像代码可能是有用的。这将是一个非常非常好的书,你也可以拿起。

是你从磁盘或网络中读取的图像之一。我喜欢两种解决方案,但我更喜欢另一种。谢谢你的回答;+我投你一票。谢谢-这就是我所想的。