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

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

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

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

ドラッグ&ドロップ

コンピューターのGUIにおいて、バーチャルなものを「つかむ」ことによって選択し、別の場所や他のバーチャルなものの上に動かす行為、またはその行為に対応していることを指す。

Q&A

0回答

1026閲覧

寺や神社を紹介する対話的アプリケーションの作成

beginner11111

総合スコア1

Java

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

ドラッグ&ドロップ

コンピューターのGUIにおいて、バーチャルなものを「つかむ」ことによって選択し、別の場所や他のバーチャルなものの上に動かす行為、またはその行為に対応していることを指す。

0グッド

0クリップ

投稿2020/11/11 05:09

編集2020/11/11 05:21

前提・実現したいこと

全国のいくつかの神社や寺を紹介する対話的アプリケーションを作成したいです。
あらかじめ日本地図を表示させ、画面上部にある「岩手」「長野」「京都」のボタンを押すと、それぞれの地域の有名な神社や寺の画像を表示させて、その紹介分も表示させたいです。また、ウィンドウ上でドラッグすると、7つの有名な神社や寺の画像を表示させたいです(文字なし)。
ウィンドウに出入りするときに音を鳴らし、ウィンドウ上の作業をすべて消すボタン(消去ボタン)を押すときも音を鳴らします。
どのようにすれば上記の内容のアプリケーションが作成できますか?
作成中のものはこの通りです。超初心者ですので滅茶苦茶かもしれませんが、どなたかよろしくお願いいたします。

■■な機能を実装中に以下のエラーメッセージが発生しました。

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

エラーメッセージ ```エラー: 型の開始が不正です エラー: ';'がありません エラー: 無効なメソッド宣言です。戻り値の型が必要です エラー: ')'がありません エラー: <identifier>がありません エラー: class、interfaceまたはenumがありません ### 該当のソースコード ```java import java.awt.*; import java.awt.event.*; import java.applet.AudioClip; import javax.swing.JApplet; public class Project2020_2a extends Frame { /*  ここは、プログラムのどこからでも使いたい 変数などを宣言しておくフィールドです。  変数や、オブジェクトの入れものを用意しています。 */ // マウスのx座標の記録用変数 Mx, y座標の記録用変数 Myです。 int Mx = 0, My = 0; // // gを、標準グラフィクス描画対象として使います。 Graphics g; // // g2を、高度なグラフィクス機能(Graphics2D)を使う場合の描画対象として使います。 Graphics2D g2; // // Frame部品の一種である自分を、リスナーオブジェクトから呼び出せるようにするために、 // 入れ物 myFrame を用意します Frame myFrame; // // 画像ファイルから読み込む複数の画像を入れるためのオブジェクトです //(今回は配列として用意)。 Image img[]; // // 音声ファイルを入れるためのオブジェクトです(今回は配列として用意)。 AudioClip ac[]; // // ボタン部品の入れ物 bt1 を用意します。 Button bt1,bt2,bt3,bt4; // // 描画する画像番号を指定するための変数です(ドラッグ動作ごとに0~9を循環させます)。 int m = 0; // ////////////////////////////////////////// //① このプログラムの起動 ////////////////////////////////////////// public static void main(String[] args) { //② このプログラム本体の生成 Project2020_2a pj = new Project2020_2a(); // ③へ } //③ このプログラムの生成内容 (この部分はコンストラクタと呼ぶ) public Project2020_2a() { //④ ウインドウタイトルの設定 super("Project2020 ProKisoB"); // 自分自身(this) を、どこからでも呼び出せるように myFrame に代入しておきます。 myFrame = this; // // このアプリケーションが持つ描画面を受け取り、gという名前で呼び出せるようにします。 g = myFrame.getGraphics(); // // Graphics2Dの機能を使う場合は、g2として呼び出せるようにします。 g2 = (Graphics2D) g; // // 背景を明るい水色に着色します。 setBackground(new Color(210, 245, 240)); // // // 用意しておいた10枚の画像を順番に画像用配列img[]に読み込み、 //プログラム中で利用できるようにしています。 //  ファイル名は T0.GIF~T9.GIF ですが、for文で数字部分を変えながら // ファイル名を指定しています。 Toolkit tk = getToolkit(); img = new Image[10]; for (int i = 0; i < 10; i++) { img[i] = tk.getImage("src/images/japan.png"); } // 用意しておいた3つの音を順番に音の格納用配列に読み込み、 // プログラム中で利用できるようにしています。 int numSounds = 4; ac = new AudioClip[numSounds]; for (int i = 0; i < numSounds; i++) { ac[i] = JApplet.newAudioClip(getClass().getClassLoader().getResource("sounds/ss"+i+".wav")); } // //ボタンの組み込み bt1 = new Button("岩手"); bt2 = new Button("長野"); bt3 = new Button("京都"); bt4 = new Button("<消去ボタン>"); // 画面にボタンを貼り付けます。2コ以上作成すると順番に左から並びます。 this.setLayout(new BorderLayout()); this.add(bt4, BorderLayout.NORTH); // ボタンbt1に リスナー(ボタンの場合はアクションリスナー)を貼り付けます。 bt4.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { // ボタンを押した際に、画面を消して、paintメソッドを呼んでいます。 // これにより最初の画面を再描画しています。 repaint(); // 3番の音を再生させています。 ac[3].play(); } }); bt1 = new Button("岩手"); bt1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { Toolkit tk = getToolkit(); img[0] = tk.getImage("src/images/iwate.png"); repaint(); } }); bt2 = new Button("長野"); bt2.addActionListner(new ActionListner() { public void actionPerformed(ActionEvent ae) { Toolkit tk = getToolkit(); img[1] = tk.getImage("src/images/iwate.png"); repaint(); } }); bt3 = new Button("京都"); bt2.addActionListner(new ActionListner() { public void actionPerformed(ActionEvent ae) { Toolkit tk = getToolkit(); img[2] = tk.getImage("src/images/kyoto.png"); repaint(); } }); } /////////////////////////////////////////////////////////////////////////// // (1)マウスの瞬間動作に反応する「イベントリスナー」MouseListenerの登録 /////////////////////////////////////////////////////////////////////////// this.addMouseListener( new MouseAdapter() { // ①マウスがクリックされたときの処理 public void mouseClicked(MouseEvent e) { System.out.println("(1)クリックされました..."); //マウスの位置に画像を描画しています。 //また、描画のたびに画像番号を切り替えています)。 Graphics g = myFrame.getGraphics(); m++; m = (m > 9) ? 0 : m; g.drawImage(img[m], e.getX(), e.getY(), myFrame); } // ②マウスカーソルが画面内に入ったときの処理 public void mouseEntered(MouseEvent e) { System.out.println("(2)画面に入りました..."); ac[0].play(); } // ③マウスカーソルが画面から出たときの処理 public void mouseExited(MouseEvent e) { System.out.println("(3)画面から出ました..."); } // ④マウスボタンが押されたときの処理 public void mousePressed(MouseEvent e) { System.out.println("(4)ボタンが押されました..."); ac[1].play(); } // ⑤マウスボタンを放したときの処理 public void mouseReleased(MouseEvent e) { System.out.println("(5)ボタンが放されました..."); } public void actionPerformed(ActionEvent e) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } private void setsize(int i, int i0) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } }); /////////////////////////////////////////////////////////////////////////// // (2)マウスの連続動作に反応する「イベントリスナー」MouseMotionListenerの登録 /////////////////////////////////////////////////////////////////////////// this.addMouseMotionListener( new MouseMotionAdapter() { // ⑥ドラッグしたときの処理 @Override public void mouseDragged(MouseEvent e) { } // ⑦マウスを動かしたときの処理 @Override public void mouseMoved(MouseEvent e) { System.out.println("(7)マウス移動中です..."); } }); //⑤ ウィンドウを閉じるための動作の設定 addWindowListener(new SampleWindowListner()); //⑥ ウィンドイの表示サイズの設定 setSize(600, 600); //⑦ ウィンドウ部品(Frame)を表示させる(指示しないと表示されない) setVisible(true); //⑧ 表示のための処理 ⑨へ } public void paint(Graphics g) { this.g = g; //⑩ 描画用部品gに文字列を書き込む ()内に,文字列,x座標,y座標を書く //文字フォントを作成します。 Font f = new Font("TimesRoman", Font.BOLD, 12); // フォントを画面に設定します。 g.setFont(f); g.setColor(Color.BLUE); g.drawString("== プロジェクト課題 2020 ==", 50, 50); g.setColor(new Color(100, 200, 100)); g.drawString("背景として、最初に書いておきたい画像や図形は、paintメソッドで描いておきます", 50, 80); g.drawImage(img[0], 100, 100, this); } private void addMouseListener(MouseAdapter mouseAdapter) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } private void addMouseMotionListener(MouseMotionAdapter mouseMotionAdapter) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } // ウィンドウを閉じる動作で行う処理(変更不要) class SampleWindowListner extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } }

試したこと

4つのボタンを作成してみたが、エラーが多数出てしまった。
日本地図を初めから表示させるためにmouseDraggedの操作を消してみた。

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

こちらのコードは手を加えたものです。エラーが多数発生してしまいました。
一切手を加えていないコードをご覧になりたい場合は教えて下さい。

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

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

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

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

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

Zuishin

2020/11/11 05:25

テキストエディタでも使っているんでしょうか? ソースコードエディタか IDE を使うのが早道です。
beginner11111

2020/11/11 05:29

netbeans IDEを使用しています
Zuishin

2020/11/11 05:33

手を加えていないコードがあるなら、エラーが出ない範囲で少しずつ手を加えればどこに問題があるかわかると思います。
dodox86

2020/11/11 05:44

一足飛びに全てのやりたいことを盛り込むのは特に初心の方には無理ですし、ひとつの回答で初心の方に説明するのも無理です。 > 画面上部にある「岩手」「長野」「京都」のボタンを押すと、それぞれの地域の有名な神社や寺の画像を表示させて、その紹介分も表示させたいです。 まず、その「岩手」のボタンとやらを押したら岩手の画像を表示させるだけか、その紹介文を表示させることだけ、ひとつのことだけやってみましょう。
BeatStar

2020/11/11 05:49

まず、目の前のエラーをどうにかするべきです。 『エラーメッセージぐらいは読みましょう』です。 ヒントが隠されています。それを読もうとすらしないのなら、上達しませんよ。 (だって答え言っているレベルだし)
m.ts10806

2020/11/11 06:10

このエラーは… そのまま原因通りですね。 というかタイトルと起きてる現象が合ってません。要件記載してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問