2016-07-17 10 views
1

Intellij GUI Designerを使用して私のプログラム用の簡単なGUIを作成しました。しかし、私はgradle jarファイルを作成して実行しようとすると、すべてうまく動作しますが、NullPointerException(Frameを作成しますがコンポーネントは表示されません)が表示されます。 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だと、ここカタログツリー

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

miさんにそれをお手伝いできますか?ありがとう

+0

あなたは完全な例外を投稿できますか?私はあなたの依存関係でintellij UIデザイナーライブラリを参照する必要があるかもしれないと思う。 – wakjah

+0

質問を編集して、1)完全な例外の説明、2)エラーの原因となったコード行を含む関数を含めることができますか? – wakjah

+0

@wakjah Ok、それは – user3713267

答えて

2

メンバ変数(スイングコンポーネントpaneltextField1など)を決して決して設定しないように見えます。つまり、nullポインタになります。つまり、例外です。私は、intellijのライブラリはある時点であなたのために自動的に設定されることを前提としています。

私はintellijのデザイナーを一度も使用していませんが、グラデルビルドスクリプトで使用するにはいくつかのことをしなければならないようです。

まずあなたがセッティングを経由して、ソースコードを更新するためのIntelliJを設定する必要があります - にGUIを生成します> - > GUIデザイナーを:Javaソースコード、その後、ビルドスクリプトであなたの依存関係に

dependencies { 
    compile 'com.intellij:forms_rt:7.0.3' 
} 
をIntelliJのフォームライブラリを追加

この情報はIntellij Idea 13 UI Designer and automatic Gradle buildingから取得しましたが、正確性を保証することはできませんので、試してみて何が起こるかを確認する必要があります。

+0

ありがとう!誰かが同じ問題を抱えている場合 - 依存関係を追加した後にforms_rt libをインポートするのを忘れないでください – user3713267

+0

ソースを変更する前にintellijでプロジェクトを再実行しなければなりませんでした。それから私はビルドを行うことができ、それは働いた。 – Thom

関連する問題