当前位置: 首页 > 知识库问答 >
问题:

Intellij,使用swing designer“ContentPane无法设置为Null”

广昊昊
2023-03-14

我正在试用intellij,并且正在尝试进行一些swing开发。我遇到了一个在eclipse上从未遇到过的问题,我想知道我是否设置错了什么。

下面是我的驱动程序运行的GUI类:

package view;

import javax.swing.*;
import java.awt.*;

public class View {

private JPanel panel;

public void run() {
    JFrame frame = new JFrame("Vending Machine");
    frame.setContentPane(new View().panel);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
}

{
// GUI initializer generated by IntelliJ IDEA GUI Designer
// >>> IMPORTANT!! <<<
// DO NOT EDIT OR ADD ANY CODE HERE!
    $$$setupUI$$$();
}

/**
 * Method generated by IntelliJ IDEA GUI Designer
 * >>> IMPORTANT!! <<<
 * DO NOT edit this method OR call it in your code!
 *
 * @noinspection ALL
 */
private void $$$setupUI$$$() {
    final JPanel panel1 = new JPanel();
    panel1.setLayout(new GridBagLayout());
}

}

据我所知,我的run()方法非常简单。但是,在编译时,我收到的错误是:

Exception in thread "main" java.awt.IllegalComponentStateException: contentPane cannot be set to null.
at javax.swing.JRootPane.setContentPane(JRootPane.java:621)
at javax.swing.JFrame.setContentPane(JFrame.java:698)
at view.View.run(View.java:13)
at model.VendingMachine.<init>(VendingMachine.java:14)
at controller.Driver.main(Driver.java:14)

无论出于什么原因,intellij自动创建的代码没有正确初始化JPanel,这就是它为空的原因。

我尝试在run内部实例化它(panel=new JPanel();)但这并没有帮助。

这是不是很明显?在Eclipse中开始使用swing时,我从来没有遇到过这个问题。

共有1个答案

阴凯歌
2023-03-14

您将面板'panel'设置为JFrame的内容窗格,但是您正在创建的JPanel称为'panel1'。若要解决此问题,请将jPanel的名称更改为“panel”,而不是“panel1”。

 类似资料:
  • 我是linux的初学者(运行linux Mint18.3),并试图为Java开发设置环境。我已经在我的Windows机器上做过几次了,它总是起作用的,但是不能使它在Linux上起作用。 运行命令返回以下内容: 但是,当我打开IntelliJ时,它说Project SDK没有定义。当我试图将其设置到文件夹中时(这是我从命令开始挖掘文件系统时发现的位置),它说“所选目录不是JDK的有效主目录”。我还手

  • 当我从IntelliJ编译我的项目时,没有任何问题,我的程序运行顺利,但是当我尝试使用javac从终端编译它时,警告“注意:Victor/演示文稿/TableControlllerMenu.java使用未经检查或不安全的操作。”弹出,当我尝试执行它时,我得到错误“线程中的异常”main“java.awt.IllegalComponentStateException: contentPane不能设置

  • 所以我告诉IDEA它应该使用什么JDK,但它仍然要求我设置一个JDK。这是一个窃听器还是我遗漏了什么?我能应用任何变通方法使一切照常工作吗?

  • 我正在尝试配置一个简单的JPA项目,我被卡住了。 我有一个工作数据源(MySQL) 我做了以下步骤(Intellij生成的所有文件): > 导入具有学生表的数据库。 使用Intellij IDE生成实体类。 从Maven导入Hibernate-entityManager库。 导入MySQL连接器。 尝试运行一个简单的JPA程序来创建新行,但我得到了一个例外: 没有名为persistenceUnit

  • 我使用IntelliJ IDEA15,但有一个自动保存的问题。例如,我做了一个新的配置,例如Show the line number。当我关闭IntelliJ并重新打开我的IDE时,它不保存我的配置,并向我显示以下消息: 无法保存设置:无法保存设置。请重新启动IntelliJ IDEA

  • 我正在尝试在Linux系统上使用IntelliJ Community 2021.2为我的Gradle项目(包含许多主要方法)设置JVM参数。在用户目录中创建idea64.vmoptions对我不起作用,因为主要方法不是从文件中获取VM设置。我还尝试设置一个环境变量来指示. vm选项文件,但它仍然不起作用。 唯一对我有用的是运行/调试配置中的“添加VM选项”,但我不想每次创建新的主方法时都设置VM选