我在Fedora 17上使用Eclipse Juno编写了一个Java应用程序。我安装了JRE 1.7,但我相信,我将Java构建路径更改为1.6。一切都很好。然后我可以构建一个在Windows 7虚拟机上运行的.jar文件而不会出现问题。但是,如果我尝试在学校的计算机上运行它(Windows 7
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)
)
它给出了一个例外:java.lang.IllegalArgumentException: cannot add to layout: constraint must be a string
。这显然与CardLayout有关,我认为这是一个标准的Swing组件。
我正在使用miglayout库和sqlite-jdbc driver,如果这可能是相关的。
我真的很感谢帮助
答案 0 :(得分:0)
我发现了问题。
cardLayoutPanel是一个JPanel cardLayout很明显 identifier是一个String
cardLayoutPanel.add(container);
cardLayout.addLayoutComponent(container, identifier);
事实证明,在Java 1.6中,这实际上并不起作用,因为它实际应该是:
cardLayoutPanel.add(container, identifier);
没有第二行 Java 1.7不会因为某些原因而抱怨。怪异。