簡體   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