私はこの写真を持っています。個々の写真を読み込んでペイント メソッドにロードし、マウス リスナーを各色のスポットに追加しますが、黒い背景には追加しません。黒い背景を「ボタン」として含めたくありません。色付きのスポットだけに独自のマウスリスナーを持たせて、どのカラースポットを押したかを区別できるようにします。誰にもアイデアはありますか?ありがとう!
質問する
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 と Raster を介して画像を検査し、配置された各カラー スクエアに対応するオブジェクトを作成し、それぞれを個別に印刷および処理することもできます。
于 2012-04-04T01:19:26.020 に答える