Java - 将项目放置在 JPanel 中,就像在 JFrame 中一样

rad*_*row 0 java swing jpanel jframe

我尝试做简单的游戏,由几个“屏幕”(菜单、选项等)组成,可以通过显示和隐藏几个 JPanel 来工作。当我在每个面板上添加一些东西并运行程序时,唯一出现的是空的 JFrame。我让 id 看起来像这样:

public class Frame extends JFrame{
JPanel panel1 = new JPanel();
JFrame frame = new JFrame("halo");
JButton button = new Button();
int WIDTH=600,HEIGHT=600;

public Frame(){

frame.add(game);
frame.setSize(WIDTH, HEIGHT);
frame.setVisible(true);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.add(panel1);
panel1.setBounds(0,0,WIDTH,HEIGHT)
panel1.add(button);
button.setBounds(10,10,30,30);
}}
Run Code Online (Sandbox Code Playgroud)

所有必要的东西都被导入并声明,它只是“简化”版本。它出什么问题了?

Dan*_*las 5

一些东西:

  • 使用类名 Frame 可能会与 java.awt.Frame 冲突。
  • 您必须通过调用将框架设置为可见frame.setVisible(true); 在此之前,调用frame.pack();
  • 您正在继承 JFrame,但也在声明和准备不同的 JFrame。消除其中之一。
  • 将组件添加到 JFrame 的内容窗格: frame.getContentPane().add(subcomponent);