繁体   English   中英

无法将组件添加到JFrame

[英]Cannot add component to JFrame

我读了很多相同的问题,但仍然无法修复它。
我的组件只是不想添加到JFrame。

//Game extends Canvas implements Runnable

public static void main(String[] args) {
    Game game = new Game();
    game.setPreferredSize(new Dimension(SIZE, SIZE));
    JFrame frame = new JFrame("");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLayout(new BorderLayout());
    for (Component c : frame.getComponents())
        System.out.println(c.getClass().getName() + ": " + c.isVisible() + " " + c.isDisplayable());
    frame.add(game, BorderLayout.CENTER);
    for (Component c : frame.getComponents())
        System.out.println(c.getClass().getName() + ": " + c.isVisible() + " " + c.isDisplayable());
    frame.pack();
    frame.setResizable(false);
    frame.setVisible(true);
    mainFrame = frame;
    game.start();
} 

它输出

javax.swing.JRootPane: true false  
javax.swing.JRootPane: true false

您的代码正在检查JFrame的根窗格是否存在 - 它是否存在。 它是否可以在渲染之前显示 - 没有。

  • 不要将Canvas与JFrame一起使用。 请改用Swing组件。
  • 了解组件是否已添加到由其根窗格保存的JFrame的contentPane中。
  • 阅读Swing教程,了解有关如何使用Swing进行编码的详细信息。 您可以在这里找到其他Java教程The Really Big Index

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM