将JFrame转换为JPanel(Converting JFrame to JPanel)

我目前使用JFrame编写了一些Java Swing,它工作正常。

但现在我需要使用多个屏幕,并且使用cardlayouts完成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

I currently have written some Java Swing using a JFrame and it works fine.

But now I need to use multiple screens and they are done using cardlayouts.

So i need to convert my JFrame to JPanel. Currently I have this line for my JFrame

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

But if I convert mainFrame to JPanel I cant use getContentPane() IDE tells me to use getRootPane()

but I get error on this line

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

The error I get is

Exception in thread "main" java.lang.NullPointerException

最满意答案

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

应该只是:

mainPanel.add(c4Panel,BorderLayout.CENTER);

代码:

mainFrame.getContentPane()

..只是返回一个本身有add()方法的容器,并且getContentPane()部分在一段时间内是不必要的。

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

Should just be:

mainPanel.add(c4Panel,BorderLayout.CENTER);

The code:

mainFrame.getContentPane()

..is simply returning a container which itself has an add() method, and the getContentPane() part has been unnecessary for some time.

将JFrame转换为JPanel(Converting JFrame to JPanel)

我目前使用JFrame编写了一些Java Swing,它工作正常。

但现在我需要使用多个屏幕,并且使用cardlayouts完成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

I currently have written some Java Swing using a JFrame and it works fine.

But now I need to use multiple screens and they are done using cardlayouts.

So i need to convert my JFrame to JPanel. Currently I have this line for my JFrame

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

But if I convert mainFrame to JPanel I cant use getContentPane() IDE tells me to use getRootPane()

but I get error on this line

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

The error I get is

Exception in thread "main" java.lang.NullPointerException

最满意答案

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

应该只是:

mainPanel.add(c4Panel,BorderLayout.CENTER);

代码:

mainFrame.getContentPane()

..只是返回一个本身有add()方法的容器,并且getContentPane()部分在一段时间内是不必要的。

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

Should just be:

mainPanel.add(c4Panel,BorderLayout.CENTER);

The code:

mainFrame.getContentPane()

..is simply returning a container which itself has an add() method, and the getContentPane() part has been unnecessary for some time.