JPanel を拡張する別のクラス (ScorePanel) を保持する BorderLayout を持つ JFrame クラスがあります。これは、ScorePanels をセットアップするコンストラクターによって呼び出されないメソッドである JFrame クラスに関連するコードです。gPanel はメインのゲーム パネルですが、心配する必要はありません。
public void initialize() { //called by controller at the end
if (Controller.DEBUG) System.out.println("View initialized");
JPanel scores = new JPanel();
scores.setSize(1000,200);
scores.setBackground(Color.BLACK);
ScorePanel score1 = new ScorePanel("Volume", 1);
ScorePanel score2 = new ScorePanel("Pitch", 2);
scores.add(score1); scores.add(score2);
scores.setVisible(true);
scores.validate();
this.add(scores, BorderLayout.SOUTH);
this.add(gpanel, BorderLayout.CENTER); //main game panel
this.validate();
this.setVisible(true);
this.repaint();
}
これは ScorePanel の関連コードです。
private int score; //this current score
private String name; //this name
private int player; //this player
public ScorePanel(String n, int p){ //a JPanel that shows the player's name and score
super();
name = n;
score = 0;
player = p;
setBackground(Color.WHITE);
setSize(450,150);
setVisible(true);
}
以前にこれを考え出したのですが、何をすべきか思い出せません。これを実行すると、大きな ScorePanels があるはずの場所にいくつかの白い四角が表示されます。
これがスクリーンショットです。私の質問とコードが明確であることを願っています。