【问题标题】:Swing GUI Builder Intellij IDEASwing GUI Builder Intellij IDEA
【发布时间】:2015-07-30 09:54:23
【问题描述】:

我似乎无法在 IntelliJ GUI builder 上运行表单

Exception in thread "main" java.awt.IllegalComponentStateException: contentPane cannot be set to null.

我假设初始化视图的代码是自动生成的。现在我只有一个 JPanel 并且不知何故它没有自动初始化,即使它在设计器上清晰可见。

这是一个 Gradle 项目,我选择使用生成的 main 函数运行。

我必须做些什么才能让它工作?

public class MyForm {

    private JPanel jPanel;

    public static void main(String[] args) {
        JFrame frame = new JFrame("MyForm");
        frame.setContentPane(new MyForm().jPanel);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
}

【问题讨论】:

  • 你是如何编译你的项目的?
  • @yole 这是一个 gradle 项目,我选择使用生成的 main 函数运行。
  • @AndrewThompson 我添加了更多细节

标签: java swing intellij-idea


【解决方案1】:

默认情况下,IntelliJ IDEA UI 设计器通过生成字节码来工作,遗憾的是,Gradle 构建不支持这种方式。您可以在设置 | 中更改它以生成源代码编辑 | GUI 设计器。

【讨论】:

  • 这行得通,但是在我专门右键单击 Forms Java 文件并选择重新编译之前,进行 gradle 重建并没有立即修复它。
  • 我在使用 Gradle 时遇到了同样的问题,但这个答案并没有解决它,即使在单独重建表单之后也是如此。我最终将项目转换为 Maven,现在它编译并运行得很好。
【解决方案2】:

Intellij (Swing) GUI not compiling because of Gradle

通过更改 intellij 设置解决(另见屏幕截图)

我已经检查过:

  • 自动导入...
  • 使用 -set -intellij 构建和运行
  • 使用 -set -intellij 运行测试
  • Gradle JVM - 设置 - 使用项目 JDK

【讨论】:

    猜你喜欢
    • 2017-12-03
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多