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

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

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

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

解決済

Javaのエンコードに失敗してしまいます。

sitappa1981
sitappa1981

総合スコア0

Java

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

1回答

0評価

0クリップ

1399閲覧

投稿2017/12/01 17:13

質問させてください。
Javaの勉強を行っているのですが、エンコードに失敗してしまいます。
エラー内容が

Ex_08_1.java:57 エラー:無効なメソッド宣言です。戻り値の型が必要です。 public MyJPanel(){ エラー1個

との事ですので、単純な見落としの可能性があるのですが、どうしてもエラーの修正が出来ませんでしたので、どなたか解決法を教えていただけませんでしょうか?

Java

import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Ex_08_1 extends JFrame { final int windowWidth = 800; final int windowHeight = 500; public static void main(String[] args){ new Ex_08_1(); } public Ex_08_1() { Dimension dimOfScreen = Toolkit.getDefaultToolkit().getScreenSize(); setBounds(dimOfScreen.width/2 - windowWidth/2, dimOfScreen.height/2 - windowHeight/2, windowWidth, windowHeight); setResizable(false); setTitle("Software Development II"); setDefaultCloseOperation(EXIT_ON_CLOSE); MyJPanel panel= new MyJPanel(); Container c = getContentPane(); c.add(panel); setVisible(true); } public class MyJPanel extends JPanel implements ActionListener, MouseListener, MouseMotionListener { /* 全体の設定に関する変数 */ Dimension dimOfPanel; Timer timer; ImageIcon iconMe, iconEnemy; Image imgMe, imgEnemy; /* 自機に関する変数 */ int myHeight, myWidth; int myX; int myMissileX, myMissileY; boolean isMyMissileActive; /* 敵機に関する変数 */ int numOfEnemy = 12; int numOfAlive = numOfEnemy; int enemyWidth, enemyHeight; int[] enemyX = new int[numOfEnemy]; int[] enemyY = new int[numOfEnemy]; int[] enemyMove = new int[numOfEnemy]; int[] enemyMissileX = new int[numOfEnemy]; int[] enemyMissileY = new int[numOfEnemy]; int[] enemyMissileSpeed = new int[numOfEnemy]; boolean[] isEnemyAlive = new boolean[numOfEnemy]; boolean[] isEnemyMissileActive = new boolean[numOfEnemy]; } /* コンストラクタ(ゲーム開始時の初期化)*/ public MyJPanel() { // 全体の設定 setBackground(Color.black); addMouseListener(this); addMouseMotionListener(this); timer = new Timer(50, this); timer.start(); // 画像の取り込み imgMe = getImg("jiki.jpg"); myWidth = imgMe.getWidth(this); myHeight = imgMe.getHeight(this); imgEnemy = getImg("teki.jpg"); enemyWidth = imgEnemy.getWidth(this); enemyHeight = imgEnemy.getHeight(this); // 自機と敵機の初期化 initMyPlane(); initEnemyPlane(); } // 自機の初期化 public void initMyPlane() { myX = windowWidth / 2; myY = windowHeight - 100; isMyMissileActive = false; } // 敵機の初期化 public void initEnemyPlane() { for (int i=0; i<7; i++) { enemyX[i] = 70*i; enemyY[i] = 50; } for (int i=7; i<numOfEnemy; i++) { enemyX[i] = 70*(i-6); enemyY[i] = 100; } for (int i=0; i<numOfEnemy; i++) { isEnemyAlive[i] = true; enemyMove[i] = 1; } for (int i=0; i<numOfEnemy; i++) { isEnemyMissileActive[i] = true; enemyMissileX[i] = enemyX[i] + enemyWidth/2; enemyMissileY[i] = enemyY[i]; enemyMissileSpeed[i] = 10 + (i%6); } } /* 画像ファイルから Image クラスへの変換 */ public Image getImg(String filename) { ImageIcon icon = new ImageIcon(filename); Image img = icon.getImage(); return img; } /* パネル上の描画 */ public void paintComponent(Graphics g) { dimOfPanel = getSize(); super.paintComponent(g); // 自機の描画 if (myX+myWidth > dimOfPanel.width) { myX = dimOfPanel.width - myWidth; } g.drawImage(imgMe, myX, myY, this); // 自機のミサイルの描画 if (isMyMissileActive) { // ミサイルの配置 myMissileY -= 15; g.setColor(Color.white); g.fillRect(myMissileX, myMissileY, 2, 5); // 自機のミサイルの敵機各機への当たり判定 for (int i=0; i<numOfEnemy; i++) { if (isEnemyAlive[i]) { if ((myMissileX >= enemyX[i]) && (myMissileX <= enemyX[i]+enemyWidth) && (myMissileY >= enemyY[i]) && (myMissileY <= enemyY[i]+enemyHeight)) { isEnemyAlive[i] = false; isMyMissileActive = false; numOfAlive--; } } } // ミサイルがウィンドウ外に出たときのミサイルの再初期化 if (myMissileY < 0) isMyMissileActive = false; } // 敵機の描画 for (int i=0; i<numOfEnemy; i++) { if (isEnemyAlive[i]) { if (enemyX[i] > dimOfPanel.width - enemyWidth) { enemyMove[i] = -1; } else if (enemyX[i] < 0) { enemyMove[i] = 1; } enemyX[i] += enemyMove[i]*10; g.drawImage(imgEnemy, enemyX[i], enemyY[i], this); } } // 敵機のミサイルの描画 for (int i=0; i<numOfEnemy; i++) { // ミサイルの配置 if (isEnemyMissileActive[i]) { enemyMissileY[i] += enemyMissileSpeed[i]; g.setColor(Color.red); g.fillRect(enemyMissileX[i], enemyMissileY[i], 2, 5); } // 敵機のミサイルの自機への当たり判定 if ((enemyMissileX[i] >= myX) && (enemyMissileX[i] <= myX+myWidth) && (enemyMissileY[i]+5 >= myY) && (enemyMissileY[i]+5 <= myY+myHeight)) { System.exit(0); } // ミサイルがウィンドウ外に出たときのミサイルの再初期化 if (enemyMissileY[i] > dimOfPanel.height) { if (isEnemyAlive[i]) { enemyMissileX[i] = enemyX[i] + enemyWidth/2; enemyMissileY[i] = enemyY[i] + enemyHeight; } else { isEnemyMissileActive[i] = false; } } } // 敵機を全機撃墜した時の終了処理 if (numOfAlive == 0) { System.exit(0); } } /* 一定時間ごとの処理(ActionListener に対する処理)*/ public void actionPerformed(ActionEvent e) { repaint(); } /* MouseListener に対する処理 */ public void mouseClicked(MouseEvent e) { } public void mousePressed(MouseEvent e) { if (!isMyMissileActive) { myMissileX = myX + myWidth/2; myMissileY = myY; isMyMissileActive = true; } } public void mouseReleased(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } /* MouseMotionListener に対する処理 */ public void mouseMoved(MouseEvent e) { myX = e.getX(); } public void mouseDragged(MouseEvent e) { } }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Java

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