热门用鼠标选择一个区域

时间:2013-11-19 00:30:13

标签: java image paint draw

我想问你如何在java上选择绘制一个区域。我在Netbeans做了一个项目,我有一个背景(.GIF)。所以,我想选择这个背景的一部分,因为我在Paint中并制作一个圆形或方形或类似的东西。 我希望能让你轻松,你会理解。

例如,如果我在下面有这张图片,我可以用椭圆标记该区域。

enter image description here

2 个答案:

答案 0 :(得分:0)

有关自定义绘画的几种方法,请参阅Custom Painting Approaches。这些示例在普通背景上绘制,但没有理由不能使用图像作为背景。

获得背景的最简单方法是使用带有ImageIcon的JLabel,然后覆盖JLabel的paintComponent()方法。

答案 1 :(得分:0)

基本的想法是,在鼠标按下时画出一个小椭圆形,在鼠标移动时,你“淡化”你之前绘制的旧椭圆并绘制一个更大(或更小,取决于鼠标移动到的位置)的新椭圆),然后在鼠标上,你使椭圆永久。

所以,最棘手的一点可能是如何“重写”前一个椭圆形。

为此你可以使用一种称为XOR绘画的高性能技巧 - 假设gGraphics2D

g.setXORMode(Color.red);

尽管如此,由于那里的绘画性能较慢,以前在20世纪80年代的微型计算机上使用过。在今天的PC上可能没有必要。在今天的PC上,重新绘制背景图像可能会更好。

顺便说一句,为了检测我提到的鼠标事件,在Java中,你需要使用Listeners。