我希望能够在JLabel上的ImageIcon中选择图像的一部分并用颜色填充它。 这是否可能我有点困惑,因为我已经读到ImageIcon不可选,但我不确定这是否意味着我必须找到另一种显示图像的方式?
答案 0 :(得分:1)
可能,是的,困难,是的。
您需要以BufferedImage
开头,然后可以将其包裹在ImageIcon
中并应用于JLabel
。
然后,您需要在标签上注册MouseMotionListener
和MouseListener
以检测所选区域,然后相应地修改BufferedImage
并重新绘制所有内容。
话虽如此,我不会使用JLabel
,因为您无法准确计算标签呈现图标的位置,相反,我会自己制作一个自定义组件,从{{{ 1}}并封装其中的功能并使用自定义绘画来绘制图像(和选择区域)
首先查看How to Write a Mouse Listener,Performing Custom Painting,2D Graphics,可能Reading/Loading an Image,Writing/Saving an Image