1

JPanel に gridlayout があり、JButtons をそれぞれアイコン付きで追加すると、適切な順序で画像が形成されます。

次に、画像の配列をシャッフルし (実際には、Java コードを使用して断片にトリミングされ、配列に格納された単一の画像)、各 JButton アイコンを新しい画像に設定します。これで、エンドユーザーがタイルを交換して元に戻すことができる、素敵な「パズル」タイプの画像が得られます。

私の唯一の問題は、元の画像を形成するために、1) 画像を正しい場所 (ボタン) に配置し、b) すべての画像が適切な場所 (ボタン) にあるかどうかを確認する方法がわからないことです。

ボタンを配列に保存し、各画像を個別の配列に保存します。ユーザーが 2 つの異なるタイルを入れ替えると、画像のみが並べ替えられ、画像アイコンのみが設定されます。

私の考えでは、button[0].image == image[0] などを比較する必要があります。ただし、その方法がわかりません。

おそらく私のアプローチは間違っていて、説得すべき他のプロパティや会場があるのでしょうか?

4

2 に答える 2

1

これは、Java Swingあなたが開発しているのと同じ単純なパズル ゲームの例です。ここでは数値を使用しましたが、代わりに画像を使用しています。

Java スイング シャッフル ゲーム

ボタン名をインデックスとして使用できます。

JButton btn[index] = new JButton(index,imageIcon) ;

そのため、移動ごとに、ボタン インデックスの順序を確認する必要があります。注文された場合、シャッフルが手配されます。前に進んでいただければ幸いです。楽しむ。

于 2012-11-06T04:24:21.883 に答える
0

これを実装する場合、シャッフルされていない画像の配列 (またはリスト) と、その配列へのインデックスの配列 (またはリスト) を保持します。で 2 番目の配列/リストを初期化しindex[i] = iます。次に、インデックスの配列/リストをシャッフルします。JButton アイコンの設定には、追加レベルの間接化が必要ですbutton[i].setIcon(image[index[i]])。ただし、画像が正しい場所にあることを確認するのがはるかに簡単になります: if (index[i] == i).

于 2012-11-06T04:12:53.443 に答える