我读了很多相同的问题,但仍然无法修复它 我的组件只是不想添加到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
答案 0 :(得分:3)
您的代码正在检查JFrame的根窗格是否存在 - 确实如此。在渲染之前是否可显示 - 否。