0

序文として: コードがラフであることは承知しています — 私は先週 Java を手に入れたばかりなので、私の学生でも OS X マシンが研究に参加できるように、これを実験用のクロスプラットフォームにすることができました。

そのため、現在約 10 台の Windows マシンで問題なくテストしましたが、OS X では、frame3 はパネルがまったく表示されず (たとえば、空白のフレームのみ) 表示されます。現在、OS X マシンでコンパイルしていますが、次のコンソール出力が表示されます。

Exception in thread "main" java.lang.IllegalArgumentException: cannot add to layout:     constraint must be a string
at java.awt.CardLayout.addLayoutComponent(CardLayout.java:190)
at java.awt.Container.addImpl(Container.java:1072)
at java.awt.Container.add(Container.java:363)
at Reflexology1.<init>(Reflexology1.java:150)
at Reflexology1.main(Reflexology1.java:51)

コードはhttp://pastebin.com/t3vqa0s6に掲載されています。

OS X のみでこの問題を引き起こしている原因を知っている人はいますか?

4

2 に答える 2

6

JVM 6では、のnull以外 Stringの制約のみが許可されCardLayoutます。

JVM 7でも-valueが許可nullされ、emtpy String"")に置き換えられます。

おそらく、一方のプラットフォームで一方のバージョンを使用し、もう一方のプラットフォームでもう一方のバージョンを使用しています。

于 2012-10-31T22:55:27.143 に答える
6

私の最初の推測は、Windows マシンと Mac マシンが異なるバージョンの JDK を使用していることです。javac -versionこれは、コンパイラおよびjava -versionランタイム環境に対して実行することにより、コマンド ラインから確認できます。

于 2012-10-31T22:40:29.850 に答える