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

标签 java swing jframe jpanel

我尝试做简单的游戏,由几个“屏幕”(菜单、选项等)组成,可以通过显示和隐藏多个 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/

相关文章:

java - 从不同类 java 访问 jdialog 的一个实例

java - 如何使用 hibernate 设置 UserTransaction

java - 我应该如何/应该创建自己的 Guice 范围

java - Spring Bean 实现多个接口(interface)

java - 数据库更新时使用 AbstractTableModel 更新 JTable

java - 意外的 jtable 自定义渲染器行为

java - 使用 UNIX 机器文件和目录选项卡自动完成的 Windows 应用程序

Java Swing 窗口未出现在 Eclipse 中

java - 如何读取页面上所有的标题标签并选择一个具有特定标题的hading标签?

java - 浮点乘法错误并在 GUI 中显示