我目前使用JFrame编写了一些Java Swing,它运行良好。

但是现在我需要使用多个屏幕,并且使用cardlayouts完成了它们。

所以我需要将JFrame转换为JPanel。目前我的JFrame有这行

mainFrame.getContentPane().add(c4Panel,BorderLayout.CENTER);

但是,如果我将mainFrame转换为JPanel,则无法使用getContentPane() IDE会告诉我使用getRootPane()
但我在这条线上出现错误
mainPanel.getRootPane().add(c4Panel,BorderLayout.CENTER);

我得到的错误是
Exception in thread "main" java.lang.NullPointerException

最佳答案

mainPanel.getRootPane().add(c4Panel,BorderLayout.CENTER);

应该只是:
mainPanel.add(c4Panel,BorderLayout.CENTER);

代码:
mainFrame.getContentPane()

..只是返回一个本身具有add()方法的容器,而getContentPane()部分已经不需要了一段时间了。

10-06 05:38
查看更多