我使用 Intellij GUI Designer 为我的程序创建了一个简单的 GUI。一切正常,但是当我构建 gradle jar 并尝试运行它时,我得到 NullPointerException (它创建 Frame 但看不到组件)。我在配置 build.gradle 文件时遇到问题,所以我相信这可能是一个原因。
这是 build.gradle
group 'ImgScrapper'
version '1.0-SNAPSHOT'
apply plugin: 'groovy'
apply plugin: 'java'
jar {
manifest {
sourceSets.main.java.srcDirs = ['Main/src']
attributes 'Main-Class': 'imgscrapper.Main'
}
}
sourceCompatibility = 1.5
repositories {
mavenCentral()
}
dependencies {
compile 'org.codehaus.groovy:groovy-all:2.3.11'
compile 'org.jsoup:jsoup:1.9.2'
testCompile group: 'junit', name: 'junit', version: '4.11'
}
这是目录树
.
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── Main
│ ├── Main.iml
│ └── src
│ └── imgscrapper
│ ├── Frame.form
│ ├── Frame.java
│ ├── GetImages.java
│ └── Main.java
├── out
│ └── production
│ └── Main
│ ├── com
│ │ └── intellij
│ │ └── uiDesigner
│ │ └── core
│ └── imgscrapper
└── settings.gradle
错误信息
Exception in thread "main" java.lang.NullPointerException
at imgscrapper.Frame.<init>(Frame.java:34)
at imgscrapper.Main.main(Main.java:12)
Frame.java文件
public class Frame extends JFrame{
private JPanel panel;
private JTextField textField1;
private JButton button1;
public JScrollPane scrollPane;
.
.
.
Frame(){
setVisible(true);
setSize(440,290);
setLocation(450,300);
setTitle("imgScrapper");
-/*-> Here's 34 line of Frame.java*/ textField1.setText("What are you looking ./r...");
comboBox1.setSelectedIndex(1);
comboBox2.setSelectedIndex(0);
你能帮我解决这个问题吗?谢谢
最佳答案
看起来您从未将成员变量(swing 组件 panel
、textField1
等)设置为任何内容,这意味着它们将是空指针 - 因此异常(exception)。我认为 IntelliJ 的库会在某个时候自动为您设置它们。
我从未使用过 IntelliJ 设计器,但看起来您必须做一些事情才能将它与 Gradle 构建脚本一起使用。
首先,您必须通过设置 -> GUI 设计器 -> 将 GUI 生成到 Java 源代码来配置 IntelliJ 以更新源代码,然后将 IntelliJ 表单库添加到构建脚本中的依赖项中
dependencies {
compile 'com.intellij:forms_rt:7.0.3'
}
此信息取自Intellij Idea 13 UI Designer and automatic Gradle building - 但是,我不能保证其正确性,因此您必须尝试一下,看看会发生什么。
关于java - Gradle 看不到我的 swing 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38421577/