私はjavaを使ってメモリゲームを作成中です。私は、カードを描画するために使用されるJButtonを拡張するクラスを持っており、メインのランナークラスを持っています。ここに私のカードクラスがあります。Jbuttonを拡張するクラスからメソッドを描画する方法
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.*;
public class Card extends JButton {
private String cardValue;
private boolean matched = false;
private int width = 70;
public int x;
public int y;
public Card(int x, int y) {
this.x = x;
this.y = y;
setPreferredSize(new Dimension(x, y));
}
public void drawFaceDown() {
setBackground(new Color(214, 247, 202));
setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
};
}
、ここでは、私はしかし、何もグラフィックパネル上に描画されていないdrawFaceDown()を使用しようとする私のランナークラス
import java.util.List;
import java.util.ArrayList;
public class Runner {
public static void main(String[] args) {
List<Card> tiles = new ArrayList<Card>();
int NUM_COLS = 5;
int NUM_ROWS = 4;
for (int i = 0; i < NUM_COLS; i++) {
for (int j = 0; j < NUM_ROWS; j++) {
tiles.add(new Card(i * 78 + 10, j * 78 + 40));
}
}
for (int i = 0; i < tiles.size(); i++) {
tiles.get(i).drawFaceDown();
}
}
}
forループです。誰かが何が起こっているのか私を助けることができますか?
私はそれをどのように正確に行いますか? –
JButtonをグラフィックスパネルに追加するためのチュートリアルを探してみましたが、これは私が見つけたものです。 import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JButton; public class BasicSwing extends JFrame { \t \t JPanel p = new JPanel(); \t JButton b =新しいJButton( "Hello"); \t \t \t public static void main(String [] args){ \t \t new BasicSwing(); \t} \t \t公共BasicSwing(){ \t \tスーパー( "基本的なスイングのApp"); \t \t \t \t setSize(400,300); \t \t setResizable(true); \t \t \t \t p.add(b); \t \t p.add(t); \t \t p.add(ta); \t \t p.add(l); \t \t p.add(cb); \t \t add(p); \t \t \t \t setVisible(true); \t} } –
ただし、コンストラクタにボタンを追加する必要があります。私の例では、forループでそれをやろうとしていて、p.add()はうまくいきません。それではどうしますか? –