Java GUI显示为空(swing+;awt)

Java GUI显示为空(swing+;awt),java,swing,user-interface,awt,Java,Swing,User Interface,Awt,我很难让GUI包含我的任何JButton或JTextField。我有两个类,一个是包含我的主方法和框架构造函数的“Snowballfaight”类。然后我还有一个“游戏板”,它可以设置我的GUI。我的问题是,我的GUI显示为空 “打雪仗”课程: “游戏板”类别: 打包打雪仗; 导入java.awt.BorderLayout; 导入javax.swing.JFrame; 导入javax.swing.JButton; 导入javax.swing.JTextField; 导入javax.swing.J

我很难让GUI包含我的任何JButton或JTextField。我有两个类,一个是包含我的主方法和框架构造函数的“Snowballfaight”类。然后我还有一个“游戏板”,它可以设置我的GUI。我的问题是,我的GUI显示为空

“打雪仗”课程:

“游戏板”类别:

打包打雪仗;
导入java.awt.BorderLayout;
导入javax.swing.JFrame;
导入javax.swing.JButton;
导入javax.swing.JTextField;
导入javax.swing.JPanel;
导入java.awt.Color;
导入java.awt.GridLayout;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
公共类GameBoard扩展JFrame实现ActionListener{
私人JButton[][]游戏=新JButton[10][10];
私人JTextField display=newjtextfield(“欢迎参加打雪仗!”);
私人对手[]对手=新对手[4];
公共游戏板(打雪仗框架){
JPanel面板=新的JPanel();
panel.setLayout(新网格布局(10,10));
for(int row=0;row
您永远不会使
游戏板
JFrame
可见

game.setVisible(true);
一些注意事项:

  • 滚雪球
    没有明显的功能
  • 没有必要扩展
    JFrame
    ,因为没有添加任何功能
  • 阅读

    • 不确定为什么会有两个帧,但我认为您将
      显示
      面板
      添加到了错误的帧中

      尝试更改:

          add(display, BorderLayout.NORTH);
          add(panel, BorderLayout.SOUTH);
      
      致:


      旁注:除非有充分的理由,否则不要扩展
      JFrame
      。在你的课堂上只需要一个
      JFrame
      字段。喜欢组合而不是继承什么<代码>游戏是一个
      JButton[][]
      。实际上,你从来没有让游戏板JFrame可见,他做到了:
      frame.setVisible(true)
      Snowballfaight
      游戏中是扩展JFrame的类,ofc这个类可以完全消除,不,他只让
      frame
      可见,其中不包含任何内容
      game
      是包含组件的框架:)你修好了!非常感谢你!2帧是什么意思?我有一个打雪仗的框架,GameBoard构造器使用这个框架来添加更多内容。@DigitalSauce欢迎您!无需
      GameBoard
      来扩展
      JFrame
      。保持一帧。不需要两个人。看起来根本不需要
      打雪仗
      。稍后我会为打雪仗添加更多功能,但我现在明白了为什么gameboard不必扩展JFrame。再次感谢你的帮助。
      game.setVisible(true);
      
          add(display, BorderLayout.NORTH);
          add(panel, BorderLayout.SOUTH);
      
          frame.add(display, BorderLayout.NORTH);
          frame.add(panel, BorderLayout.SOUTH);