我正在使用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解析引用。
感谢所有帮助。
非常感谢您的即时回复。我已经改变到V4.2并且脚本现在完美地工作。请注意,需要从Maven repo下载两个jar文件:miglayout-core-4.2.jar和miglayout-swing-4.2.jar。这与MigLayout网站上的V4.0不同,后者是一个单独的jar文件。 –
太棒了!继续接受答案,让其他人知道这是正确的答案。如果你能给我准确的两个罐子,我可以更新我的答案。 –