-1

我有这张图片,我希望能够阅读每张图片,将其加载到绘画方法中,并将鼠标侦听器添加到每个颜色点,而不是任何黑色背景。我不希望将任何黑色背景作为“按钮”包含在内,只有彩色点有自己的鼠标侦听器,所以我可以区分我按下了哪个颜色点。有没有人有任何想法?谢谢!

4

2 回答 2

1

我想你可以这样处理:

List<Shape> buttons = ...

for each pixel in the picture, top left to bottom right {
   if the pixel is not black {
       if the pixel is not already contained in one of the buttons {
           iterate over every pixel towards the right until you reach a different color
           iterate over every pixel towards the bottom until you reach a different color

           // now you have the bounds of your button
           // create a new Rectangle and add it to your list.
       }
   }
}

我从来没有尝试过这样的事情,也没有测试过上述方法,但对我来说它似乎应该有效。

为什么不能用JButtons 和JPanels 复制图片并简化生活?

于 2012-04-04T00:52:28.733 回答
1

mouseListener 返回一个位置,因此我将使用该位置检查相应像素处的图像,然后分支以执行所需的操作。如果像素变成黑色,你就什么也不做。

可以通过 BufferedImage 对象和 Raster 来检查图像。

或者,可以通过 BufferedImage 和光栅检查图像,并为每个定位的颜色方块创建相应的对象,分别打印和处理每个对象。

于 2012-04-04T01:19:26.020 回答