2012-12-03 50 views
1

我正在使用Windows 7,Eclipse 4.2.1和(試圖使用)MigLayout 4.0。在Eclipse中不能使用MigLayout,但它在Groovy Console中工作

我已經下載miglayout-4.0-swing.jar,把它添加到我的類路徑,併成功地運行在Groovy控制檯下面的腳本:

import groovy.swing.SwingBuilder 
import groovy.swing.factory.LayoutFactory 
import javax.swing.WindowConstants as WC 
import net.miginfocom.swing.MigLayout 

def swing = new SwingBuilder() 
swing.registerBeanFactory('migLayout', MigLayout) 

swing.build { 
    frame(id: 'eventScrollPanel', pack: true, show: true, 
     defaultCloseOperation: WC.EXIT_ON_CLOSE) { 
     migLayout(layoutConstraints: "fill, debug", columnConstraints: "", 
     rowConstraints: "") 
     panel() { 
      label(text: "test") 
     } 
    } 
} 

在Eclipse中,我已經添加了外部jar文件到我的JDK並檢查它是否出現在Project => Properties => Java Build Path => Libraries tab => JRE System Library [jdk1.7.0_09]中。然而,該腳本失敗,出現以下錯誤:

Caught: java.lang.ExceptionInInitializerError 
java.lang.ExceptionInInitializerError 
    at net.miginfocom.layout.UnitValue.<init>(Unknown Source) 
    at net.miginfocom.layout.UnitValue.<clinit>(Unknown Source) 
    at net.miginfocom.layout.PlatformDefaults.<clinit>(Unknown Source) 
    at net.miginfocom.swing.MigLayout.<init>(Unknown Source) 
    at net.miginfocom.swing.MigLayout.<init>(Unknown Source) 
    at MigLayoutExamples$_run_closure1_closure2.doCall(MigLayoutExamples.groovy:12) 
    at MigLayoutExamples$_run_closure1_closure2.doCall(MigLayoutExamples.groovy) 
    at MigLayoutExamples$_run_closure1.doCall(MigLayoutExamples.groovy:10) 
    at MigLayoutExamples$_run_closure1.doCall(MigLayoutExamples.groovy) 
    at MigLayoutExamples.run(MigLayoutExamples.groovy:9) 
Caused by: java.lang.NullPointerException 
    at net.miginfocom.layout.LayoutUtil.hasBeans(Unknown Source) 
    at net.miginfocom.layout.LayoutUtil.<clinit>(Unknown Source) 
    ... 10 more 

另外,在腳本的行12的開始的migLayout基準由Eclipse的下劃線,即Eclipse的canot解析引用。

感謝所有幫助。

回答

2

看起來像這樣line是罪魁禍首。

LayoutUtil.class.getClassLoader().loadClass("java.beans.Beans"); 

最新的JAR是4.2哪裏這個問題似乎已經固定了try-catch塊。
試試這些罐子。他們可以從Maven回購。 http://mvnrepository.com/artifact/com.miglayout/miglayout-swing/4.2
http://mvnrepository.com/artifact/com.miglayout/miglayout-core/4.2

+0

非常感謝您的即時回覆。我已經改變到V4.2並且腳本現在完美地工作。請注意,需要從Maven repo下載兩個jar文件:miglayout-core-4.2.jar和miglayout-swing-4.2.jar。這與MigLayout網站上的V4.0不同,後者是一個單獨的jar文件。 –

+0

太棒了!繼續接受答案,讓其他人知道這是正確的答案。如果你能給我準確的兩個罐子,我可以更新我的答案。 –

相關問題