JPanelを使ってJavaでチェスゲームを作る際、コンテナに何か入っているかどうかを返すメソッドはありますか? たとえば、次のような配列を定義することにより: JPanel [8][8] プレイヤーの動きが合法かどうかを確認できるように、正方形 [i][j] に男性がいるかどうかを確認します。それを確認する方法はありますか??
質問する
445 次
2 に答える
4
JPanel をチェックする代わりに、現在のボード位置を別のデータ構造に保存することをお勧めします。通常、部品にアクセスするためのアクセサ関数を使用してボードを格納するクラスを定義します。たとえば、次のようになります。
public class Board {
private Piece[][] squares;
....
code to set up board etc.
....
public Piece getPiece(int x, int y) {
return squares[x][y];
}
}
このアプローチには、いくつかの利点があります。
- ボードの位置の表現を GUI 表示から分離します。これは重要です。通常、画面表示に縛られずにボードの位置を操作したい (例: 評価、可能な動きの検索など)。
- ボードの内部表現は好きなように構成でき、その一方で、ボードを使用する他のコードにカプセル化されたビューを表示できます。
- パフォーマンスが向上します。ボードの単純なインメモリ表現は、GUI コンポーネントのツリーをクエリ/変更するよりもはるかに軽量で高速にアクセスできます。
于 2012-12-29T10:01:07.617 に答える
0
メッセージを送ってください。コンピューターに問題があり、現在コメントを投稿できないようですが、しばらく前にチェッカー ゲームを作成しました。ソース コードをお送りします。完全ではありませんが、ボードとピースを描画します。また、マウス クリックとプレイ可能な正方形もチェックします。参考になるかも。あなたの質問に対する簡単な答えは、私は を使用せず、代わりにまたはJPanel
を拡張する Space クラスを作成します。Rectangle
Rectangle2D
JPanel
于 2012-12-29T11:37:33.777 に答える