我目前使用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()
部分已经不需要了一段时间了。