卡片布局显示错误的面板
Card Layout showing wrong panel
通过where card layout的方法添加了一个面板。另一个通过对象传递给方法。问题是卡片布局的面板显示面板“1”而不是面板“2”,就像面板“2”甚至没有传递给方法一样。没有错误....
我尽量简化代码:
第一个class:
public class Game extends JFrame {
private CardLayout cl;
private JPanel MAIN;
private JPanel FIRST;
public Game(){
FIRST = new JPanel();
FIRST.setLayout(new BorderLayout());
cl = new CardLayout();
MAIN = new JPanel();
MAIN.setLayout(cl);
}
public void Show(){
MAIN.add(FIRST, "1");
cl.show(MAIN, "2");
add(MAIN);
}
public void addPanel2(JPanel panel){
MAIN.add(panel, "2");
}
}
第二个class:
public class meni {
private JPanel SECOND;
Game nova = new Game();
public meni(){
SECOND = new JPanel();
SECOND.setLayout(new GridBagLayout());
nova.addPanel2(SECOND);
}
}
主要class:
public static void main(String[] args){
Game ticFrame = new Game();
meni luk = new meni();
ticFrame.show();
ticFrame.setTitle("Hey");
ticFrame.setSize(600,600);
ticFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ticFrame.setLocationRelativeTo(null);
ticFrame.setVisible(true);
}
}
nova.addPanel2(第二个);这段代码是什么意思??要将面板添加到框架,我们有诸如 JPanel.add(您的面板对象)之类的方法。
您添加的第二个 JPanel 很好,但是您将其添加到 错误的 游戏对象。一个 Game 对象当前在程序启动时可见,在那一秒内 class 您创建了一个全新且独特的 Game 对象并将您的第二个 JPanel 添加到其中,因此它不会显示在可视化中是有道理的对象。
解决方案:不要在第二个 class 中创建新的 Game 对象,而是确保第二个 class 具有对 visualized 游戏对象。这可以通过构造函数参数或 setter 方法参数来完成。
通过where card layout的方法添加了一个面板。另一个通过对象传递给方法。问题是卡片布局的面板显示面板“1”而不是面板“2”,就像面板“2”甚至没有传递给方法一样。没有错误....
我尽量简化代码:
第一个class:
public class Game extends JFrame {
private CardLayout cl;
private JPanel MAIN;
private JPanel FIRST;
public Game(){
FIRST = new JPanel();
FIRST.setLayout(new BorderLayout());
cl = new CardLayout();
MAIN = new JPanel();
MAIN.setLayout(cl);
}
public void Show(){
MAIN.add(FIRST, "1");
cl.show(MAIN, "2");
add(MAIN);
}
public void addPanel2(JPanel panel){
MAIN.add(panel, "2");
}
}
第二个class:
public class meni {
private JPanel SECOND;
Game nova = new Game();
public meni(){
SECOND = new JPanel();
SECOND.setLayout(new GridBagLayout());
nova.addPanel2(SECOND);
}
}
主要class:
public static void main(String[] args){
Game ticFrame = new Game();
meni luk = new meni();
ticFrame.show();
ticFrame.setTitle("Hey");
ticFrame.setSize(600,600);
ticFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ticFrame.setLocationRelativeTo(null);
ticFrame.setVisible(true);
}
}
nova.addPanel2(第二个);这段代码是什么意思??要将面板添加到框架,我们有诸如 JPanel.add(您的面板对象)之类的方法。
您添加的第二个 JPanel 很好,但是您将其添加到 错误的 游戏对象。一个 Game 对象当前在程序启动时可见,在那一秒内 class 您创建了一个全新且独特的 Game 对象并将您的第二个 JPanel 添加到其中,因此它不会显示在可视化中是有道理的对象。
解决方案:不要在第二个 class 中创建新的 Game 对象,而是确保第二个 class 具有对 visualized 游戏对象。这可以通过构造函数参数或 setter 方法参数来完成。