gpt4 book ai didi

java - 无法将组件添加到 JFrame

转载 作者:行者123 更新时间:2023-11-29 05:33:21 29 4
gpt4 key购买 nike

我看了很多相同的问题,但仍然无法解决。
我的组件只是不想添加到 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 的根 Pane 是否存在——而且确实存在。它在渲染之前是否可显示 - 否。

  • 不要将 Canvas 与 JFrame 一起使用。请改用 Swing 组件。
  • 了解码件被添加到 JFrame 的 contentPane 中,该 contentPane 由其根 Pane 持有。
  • 阅读 Swing 教程,详细了解如何使用 Swing 进行编码。您可以在这里找到它们和其他 Java 教程 The Really Big Index .

关于java - 无法将组件添加到 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20351064/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com