私は、Concentrationと呼ばれるゲームに合ったメモリカードを作ろうとしています。今まで私は3つのクラスを持っています。 メモリーのJFrameはActionListenerのクリックするとJButtonのアイコンを変更しようとしています
ボード実装したJPanelはActionListenerの
セルは、私がこれまでにポップアップするウィンドウを達成しているのJButton
拡張実装して拡張し拡張します。セルの種類のペアを追加するには、リストを使用します。ボード全体にランダムにすべてのセルを配布します。すべてのセルの背面(img)を表示します(24セル、4行6列あります)。カードをクリックすると、白いイメージが表示されます。私が達成しようとしているのは、ボタンをクリックすると、ボタンに適切な画像が表示されるということです。
私はこのようにActionPerformedをクラスBoardに実装しました。
public void actionPerformed(ActionEvent e){
if(e.getSource() instanceof Cell){
Cell temp = (Cell)e.getSource();
temp.setSelected(true);
if (temp.selected()){
int row = temp.getRow();
int column = temp.getColumn();
board[row][column].setIcon2();
}
}}
マイセット選択方法は、唯一の真のセルクラスにブール変数の値を変更するのに役立ちます。 これは、CellクラスのsetIcon2メソッドです。
public void setIcon2(){
ImageIcon x = new ImageIcon();
x = getImageIcon();
setIcon(x);
}
ここでは、クラスCellのgetImageIconメソッドを示します。
private ImageIcon getImageIcon() {
int temp=0;
int id;
if (localSelected) {
id = getType();
String tempId = Integer.toString(id);
icons[temp] = new ImageIcon("img-" + tempId + ".jpg");
temp++;
return icons[temp];
} else {
id = IMAGE_NUMBER;
String strId = Integer.toString(id);
icons[id] = new ImageIcon("img-" + strId + ".jpg");
}
return icons[id];
}
どのような種類のコンパイルエラーも警告もありません。 getTypeメソッドは、私のゲームボードに格納されている値に関連付けられた整数変数を返します。 (タイプCellの2D配列)。
私の苦境をできるだけ明確に説明しようと、どのような方向性も高く評価され、評価されます。 ありがとうございます Mjall2
setSelectedIconメソッドを使ってみました(既にsetIconメソッドを使用しています) イメージは変更されませんが、強調表示されるようになりました。 – Mjall2
ありがとう! – Mjall2
この[関連例](http://stackoverflow.com/a/7360696/418556)も参照してください。 –