質問: new Gui(); // ウィンドウ作成 frm.setVisible(true); // 表示 } } ``` ### 試したこと エラー文で調べましたが修正できていません。 ### 補足情報(FW/ツールのバージョンなど) Eclipse ver 2019-03(4.11.0) java version "1.8.0_211"
回答: おそらくプロジェクトの設定がおかしいのだろうと思います。 (1) Package Exploreでプロジェクト名を選ぶ (2) メニューから > Project > Properties (3) Java Compilerを選ぶ (4) 右側のCompiler compliance level:を見る そこが1.8になっているのが期待ですが11(あるいは9 or 10 or 12)になってないでしょうか? もしそうなっていたら1.8を選び、プロジェクトのBuild PathのLibraryにあるClasspathのところがJRE System Library [jdk1.8とかなんとか]になるようにしてみてください。 Java9以降、Javaの言語仕様にモジュールというのが新たに導入されました。その言語仕様ですと使っているライブラリーによってmodule-info.javaに必要なモジュールを細かく指定しないと参照できなくなります。 例えばawt/swingを用いたアプリケーションをモジュールサポート以降のバージョン向けにコンパイルする際にはmodule-info.javaに以下のようにjava.desktopを加えなくてはならないのです。 ``` // srcディレクトリー直下にあるmodule-info.javaの内容 module あなたのアプリケーションのモジュール名 { requires java.desktop; // <==この行 } ``` そうせずにコンパイルすると java.awt.* javax.swing.* などはのきなみ「そんなクラスはないよ」と言われてしまうのです。 質問者さんが遭遇している問題はこれによって起こったのだと思います。