2016-07-17 9 views
1

Intellij GUI Designer를 사용하여 내 프로그램을위한 간단한 GUI를 만들었습니다. 다 잘 작동하지만 내가 gradle 항아리를 만들 때 그것을 실행하려고하면 NullPointerException (프레임을 생성하지만 구성 요소를 보지 못함)을 얻습니다. 내가 build.gradle 파일을 구성하는 데 문제가있어서 이유가있을 수도 있습니다.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입니다 그리고 여기 카탈로그 트리

. 
├── 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 

오류 messege

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); 

마일을 도와 주실 수 있습니까? 감사합니다.

+0

전체 예외 사항을 게시 할 수 있습니까? 당신이 의존성에서 intellij UI 디자이너 라이브러리를 참조해야 할 수도 있습니다 용의자. – wakjah

+0

질문을 편집하여 1) 전체 예외 설명 및 2) 오류의 원인이 된 코드 줄이 포함 된 함수를 포함 할 수 있습니까? – wakjah

+0

@wakjah 좋아, 그랬어 – user3713267

답변

2

회원 변수 (스윙 구성 요소 panel, textField1 등)를 절대 설정하지 않은 것처럼 보이므로 null 포인터가됩니다. 따라서 예외입니다. 나는 intellij의 라이브러리가 자동적으로 당신을 위해 어느 시점에서 그들을 설정한다고 가정한다.

나는 intellij의 디자이너를 사용한 적이 없지만 gradle 빌드 스크립트에서 사용하려면 몇 가지해야 할 것처럼 보입니다.

먼저 당신이 설정을 통해 소스 코드를 업데이트 인 IntelliJ를 구성해야 -> GUI 디자이너 ->로 GUI 생성 : Java 소스 코드를 한 후 빌드 스크립트에 의존성에 IntelliJ를 양식 라이브러리를 추가

dependencies { 
    compile 'com.intellij:forms_rt:7.0.3' 
} 

이 정보는 Intellij Idea 13 UI Designer and automatic Gradle building에서 가져온 것입니다. 그러나 정확한 결과를 보장 할 수는 없으므로 어떤 시도가 일어나는지 확인해야합니다.

+0

고마워요! 누군가가 동일한 문제가 있다면 - 종속성을 추가 한 후에 forms_rt lib를 가져 오는 것을 잊지 마십시오 – user3713267

+0

소스를 변경하기 전에 intellij에서 프로젝트를 다시 실행해야했습니다. 그런 다음 빌드를 수행 할 수 있었고 제대로 작동했습니다. – Thom

관련 문제