我有这张图片,我希望能够阅读每张图片,将其加载到绘画方法中,并将鼠标侦听器添加到每个颜色点,而不是任何黑色背景。我不希望将任何黑色背景作为“按钮”包含在内,只有彩色点有自己的鼠标侦听器,所以我可以区分我按下了哪个颜色点。有没有人有任何想法?谢谢!
问问题
352 次
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.
}
}
}
我从来没有尝试过这样的事情,也没有测试过上述方法,但对我来说它似乎应该有效。
为什么不能用JButton
s 和JPanel
s 复制图片并简化生活?
于 2012-04-04T00:52:28.733 回答
1
mouseListener 返回一个位置,因此我将使用该位置检查相应像素处的图像,然后分支以执行所需的操作。如果像素变成黑色,你就什么也不做。
可以通过 BufferedImage 对象和 Raster 来检查图像。
或者,可以通过 BufferedImage 和光栅检查图像,并为每个定位的颜色方块创建相应的对象,分别打印和处理每个对象。
于 2012-04-04T01:19:26.020 回答