我尝试做简单的游戏,由几个“屏幕”(菜单、选项等)组成,可以通过显示和隐藏多个 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);
}}
所有必要的东西都被导入和声明,它只是“简单”版本。这是怎么回事?
最佳答案
一些事情:
- 使用类名 Frame 可能会与 java.awt.Frame 冲突。
- 您必须通过调用
frame.setVisible(true);
将框架设置为可见,在此之前,调用frame.pack();
- 您正在对 JFrame 进行子类化,但同时也声明并准备了不同的 JFrame。消除其中之一。
- 将组件添加到 JFrame 的内容 Pane :frame.getContentPane().add(subcomponent);
关于Java - 将项目放置在 JPanel 中,就像在 JFrame 中一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27734803/