我有this图片,我希望能够阅读每张图片,将其加载到绘图方法中,并将鼠标侦听器添加到每个颜色点,但不能添加任何黑色背景。我不希望将任何黑色背景包含为“按钮”,并且只有彩色斑点具有自己的鼠标滑块,因此我可以区分我按下的哪个颜色点。有没有人有任何想法?谢谢!
答案 0 :(得分: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
和JPanel
复制图片并简化你的生活?
答案 1 :(得分:1)
mouseListener返回一个位置,因此我将使用该位置检查相应像素处的图像,然后分支以执行所需的操作。如果像素变成黑色,那么你就什么都不做。
可以通过BufferedImage对象和Raster检查图像。
或者,可以通过BufferedImage和Raster检查图像,并为每个颜色方块创建相应的对象,分别打印和处理每个颜色方块。