3
我有一個帶有BorderLayout的JFrame類,它包含另一個擴展JPanel的類(ScorePanel)。這是JFrame類的相關代碼,這是一個未由設置ScorePanels的構造函數調用的方法。 gPanel是主要的遊戲面板,但不要擔心:JPanels繼續出現,不管我設置了多大的尺寸
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);
}
我此之前已經想通,但我可以不記得要做什麼。當我運行這個時會發生什麼,我看到一些白色方塊,ScorePanel應該是大型的。
下面是截圖。我希望我的問題和代碼很明確。
哇,謝謝。完美工作。 – sudo