两个面板在一个JFrame



我有两个面板,希望它们显示在我的JFrame中,但是当我这样尝试时,我只能看到第二个面板。有人能帮帮我吗?(

import javax.swing.JFrame;
public class MainWindow {
CardLayout layout;
JFrame frame;
Player panel1;
Block panel2;
public MainWindow() {
    frame = new JFrame("Rechteck");
    panel1 = new Player();
    panel2 = new Block();
    panel1.addKeyListener(new KeyListen(panel1));
    frame.add(panel1);
    frame.add(panel2);
    frame.setSize(500,500);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
}}

您已经将两个面板添加到JFrameBorderLayout.CENTER;只有一个可以占用该位置,这将是最后一个添加的,在本例中是panel2

为了使面板均匀地占用空间,您可以使用GridLayout:

frame.setLayout(new GridLayout(2, 1));

旁白:在Swing中为组件注册键事件时最好使用Key Bindings

创建JPanel并将其添加到JFrame中。将panel1和panel2添加到新面板中。JFrame只能有一个子节点,通常通过调用JFrame. setcontentpane()来设置。

相关内容

  • 没有找到相关文章