我有两个面板并希望它们显示在我的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);
}}
答案 0 :(得分:4)
您已将两个面板添加到BorderLayout.CENTER
的{{1}} - 只有一个可以占据该位置。这将是添加的最后一个,在这种情况下为JFrame
。
要让面板均匀占据空间,您可以使用panel2
:
GridLayout
除了:在为Swing中的组件注册关键事件时,最好使用Key Bindings。
答案 1 :(得分:1)
创建一个JPanel添加到JFrame。将panel1和panel2添加到新面板。 JFrame只能有一个子节点,通常通过调用JFrame.setContentPane()来设置。