[英]Card Layout Panel showing wrong panel - Java Swing
我希望INIT_PANEL首先位於頂部,然后(稍后)單擊按鈕將其切換為GAME_PANEL。 但是,當我運行GAME_PANEL時,它是排名第一的...
我究竟做錯了什么?
這是代碼的重要部分:
public class MainFrame extends JFrame {
private JPanel contentPane;
private static final String GAME_PANEL = "Game panel";
private static final String INIT_PANEL = "Initial panel";
private void addPanels(){
contentPane.add(new GamePanel(), GAME_PANEL);
contentPane.add(new InitialPanel(this), INIT_PANEL);
((CardLayout) contentPane.getLayout()).show(contentPane, INIT_PANEL);
}
void switchPanels(){
((CardLayout) contentPane.getLayout()).next(contentPane);
}
public MainFrame(){
////////////////////////////resizing
contentPane = new JPanel();
contentPane.setLayout(new CardLayout(20,20));
addPanels();
////////////////////////listener for closing
}
}
我不認為您遇到的問題在提供的代碼中。 為了使此工作正常,我必須更改的一件事是添加內容窗格,該窗格從未添加:
public MainFrame(){
////////////////////////////resizing
contentPane = new JPanel();
contentPane.setLayout(new CardLayout(20,20));
addPanels();
this.add(this.contentPane); // I added this
////////////////////////listener for closing
}
那時,它只是在工作。 所以我的猜測是,如果這是從您的代碼中切出的東西,您沒有添加內容窗格,並且您認為游戲面板實際上是在其他地方渲染的。 這個假設正確嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.