-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.
       }
   }
}

私はこのようなことを試みたことも、上記の方法をテストしたこともありませんが、うまくいくように思えます。

JButton写真をs とJPanels で複製して、生活を単純化できないのはなぜですか?

于 2012-04-04T00:52:28.733 に答える
1

mouseListener は位置を返すので、その位置を使用して、対応するピクセルで画像を検査し、分岐して必要なアクションを実行します。ピクセルが黒であることが判明した場合は、単純に何もしません。

イメージは、BufferedImage オブジェクトと Raster を介して検査できます。

別の方法として、BufferedImage と Raster を介して画像を検査し、配置された各カラー スクエアに対応するオブジェクトを作成し、それぞれを個別に印刷および処理することもできます。

于 2012-04-04T01:19:26.020 に答える