質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

4500閲覧

Javaのエラー文が解決できない

k0gane

総合スコア10

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

2クリップ

投稿2019/06/01 10:59

前提・実現したいこと

https://manga.crocro.com/?cat=java&pg=index を見ながらJavaの勉強をしているのですが、2-5のGUIアプリケーションの作成のコードをコピペしたところエラーが大量発生しました...。

発生している問題・エラーメッセージ

多すぎるのでスクリーンショットで失礼します

イメージ説明

該当のソースコード

java

1package sample; 2 3import java.awt.event.ActionEvent; 4import java.awt.event.ActionListener; 5 6import javax.swing.JButton; 7import javax.swing.JFrame; 8 9public class Gui extends JFrame { 10 private static final long serialVersionUID = 1L; 11 12 // ウィンドウ本体 13 public Gui() { 14 // ウィンドウの閉じ方 15 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 16 17 // 位置とサイズ 18 setBounds(100, 100, 640, 480); 19 20 // ボタン作成 21 JButton btn1 = new JButton("ボタン1"); 22 add(btn1); // ボタン追加 23 24 // クリック時の処理 25 btn1.addActionListener(new ActionListener() { 26 @Override 27 public void actionPerformed(ActionEvent e) { 28 System.out.println("クリック"); 29 } 30 }); 31 } 32 33 public static void main(String[] args) { 34 Gui frm = new Gui(); // ウィンドウ作成 35 frm.setVisible(true); // 表示 36 } 37}

試したこと

エラー文で調べましたが修正できていません。

補足情報(FW/ツールのバージョンなど)

Eclipse ver 2019-03(4.11.0)
java version "1.8.0_211"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

おそらくプロジェクトの設定がおかしいのだろうと思います。

(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を加えなくてはならないのです。

java

1// srcディレクトリー直下にあるmodule-info.javaの内容 2module あなたのアプリケーションのモジュール名 { 3 requires java.desktop; // <==この行 4}

そうせずにコンパイルすると

java.awt.*
javax.swing.*

などはのきなみ「そんなクラスはないよ」と言われてしまうのです。

質問者さんが遭遇している問題はこれによって起こったのだと思います。

投稿2019/06/01 13:21

編集2019/06/01 13:28
KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

k0gane

2019/06/04 10:58

ありがとうございます、理解しました...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問