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

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

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

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

Q&A

解決済

1回答

1657閲覧

クラスが重複していますというエラーが出てしまう

shou_hitotose

総合スコア66

Java

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

0グッド

0クリップ

投稿2018/11/15 08:08

編集2018/11/15 11:13

現在Java初心者です。学校でJavaの勉強をしています。今回もプログラムをていしゅつ使用としたのですがクラスYPanel,XPanelが重複していますというエラーが出てしまいました。これに対してどのようにすれば解決できるのかご指導いただければ幸いです。少しコードが汚いかもしれません。あらかじめお詫びいたします。

Java

1 import java.awt.*; 2 import java.awt.event.*; 3 4 class YPanel extends XPanel { 5 Panel innerPanel3; 6 Panel innerPanel4; 7 8 public YPanel() { 9 // setLayout(null); 10 innerPanel3 = new Panel(); 11 add(innerPanel3); 12 innerPanel3.setBackground(Color.black); 13 14 innerPanel4 = new Panel(); 15 add(innerPanel4); 16 innerPanel4.setBackground(Color.black); 17 } 18 public void setBounds(int x, int y, int width, int height) { 19 super.setBounds(x,y,width,height); 20 innerPanel3.setBounds(4,height-8,width-8,8); 21 innerPanel4.setBounds(width-8,4,8,height-8); 22 } 23 } 24 25 class XPanel extends Panel { 26 Panel innerPanel1; 27 Panel innerPanel2; 28 29 public XPanel() { 30 setLayout(null); 31 innerPanel1 = new Panel(); 32 add(innerPanel1); 33 innerPanel1.setBackground(Color.white); 34 35 innerPanel2 = new Panel(); 36 add(innerPanel2); 37 innerPanel2.setBackground(Color.white); 38 } 39 public void setBounds(int x, int y, int width, int height) { 40 super.setBounds(x,y,width,height); 41 innerPanel1.setBounds(0,0,width-8,8); 42 innerPanel2.setBounds(0,0,8,height-8); 43 } 44 } 45 46 class ex7_4 { 47 static Frame myframe; 48 static XPanel mypanel1; 49 static YPanel mypanel2; 50 static YPanel mypanel3; 51 static YPanel mypanelline3[]; 52 static int score = 0; 53 54 public static void main(String args[]) { 55 int i; 56 57 myframe = new Frame(); 58 mypanel1 = new XPanel(); 59 mypanel2 = new YPanel(); 60 mypanel3 = new YPanel(); 61 62 myframe.setLayout(null); // does not use layout manager 63 myframe.setSize(400,600); // window size : width = 400, height = 600 64 myframe.setVisible(true); // make the window visible 65 66 myframe.add(mypanel1); 67 mypanel1.setBounds(30,40,100,100); 68 mypanel1.setBackground(Color.green); 69 70 myframe.add(mypanel2); 71 mypanel2.setBounds(150,40,100,100); 72 mypanel2.setBackground(Color.yellow); 73 74 myframe.add(mypanel3); 75 mypanel3.setBounds(270,40,100,100); 76 mypanel3.setBackground(Color.red); 77 78 mypanelline3 = new YPanel[5]; 79 for( i = 0; i < 5; i++ ) { 80 mypanelline3[i] = new YPanel(); 81 int w = 50/(i+1); 82 mypanelline3[i].setBounds((150+50-w/2)+((270-150)*((i-5)*(i-5))/25), 83 (130+250-w/2)-(10*((i-5)*(i-5))),w,w); 84 mypanelline3[i].setBackground(Color.gray); 85 mypanelline3[i].setVisible(false); 86 } 87 88 89 // o ma ji na i ! 90 mypanel3.addMouseListener(new MouseAdapter() { 91 public void mouseReleased(MouseEvent e) { 92 mypanel3MouseReleased(e); 93 } 94 } ); 95 96 while(true) { 97 sleep(300); 98 if( mypanelline3[0].isVisible() ) { 99 score -= 10; 100 System.out.print("SCORE:" + score + "\n"); 101 mypanel3.setBackground(Color.gray); 102 } else { 103 mypanel3.setBackground(Color.red); 104 } 105 for( i = 0; i < 4; i++ ) { 106 boolean v = mypanelline3[i+1].isVisible(); 107 mypanelline3[i].setVisible(v); 108 } 109 mypanelline3[4].setVisible(Math.random() > 0.7); 110 } 111 112 } 113 public static void mypanel3MouseReleased(MouseEvent e) { 114 if( mypanelline3[0].isVisible() == true ) { 115 mypanel3.setBackground(Color.white); 116 mypanelline3[0].setVisible(false); 117 score += 30; 118 System.out.print("SCORE:" + score + "\n"); 119 } else { 120 mypanel3.setBackground(Color.gray); 121 score -= 5; 122 System.out.print("SCORE:" + score + "\n"); 123 } 124 125 } 126 static void sleep(long msec) { 127 try{ 128 Thread.sleep(msec); 129 }catch(InterruptedException ie) { 130 } 131 } 132 }

(
(実行結果)
赤、緑、黄色の3つの四角および黒い線が表示されます。実行結果が文字で表すとこんなかんじになってしまいます。
SCORE:-10
SCORE:-20
SCORE:-30
SCORE:-40
SCORE:-50
SCORE:-60
SCORE:-70
SCORE:-80
SCORE:-90
SCORE:-100
SCORE:-110

(上がコマンドプロンプトでの実行結果)
(以下チェッカが導き出したエラーがこれです。)java ex7_4 4行目 で YPanelクラスが重複しています。
java ex7_4 25行目 でXPanelクラスが重複しています。
この2つがエラーとして表示されました。

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

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

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

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

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

m.ts10806

2018/11/15 08:22

コードブロック前後は改行入れてください。 改行 ```Java改行 コード 改行```改行
shou_hitotose

2018/11/15 08:23

ああ、すみません。すぐに直します
shou_hitotose

2018/11/15 08:26

これでよろしいでしょうか
m.ts10806

2018/11/15 08:50

エラー以前に突っ込みどころが多いですが… ひとまず実行されたコマンドと実際のエラーメッセージをそのままコピペして質問本文に追記いただけますか?
shou_hitotose

2018/11/15 10:16

すみません。わかりました。
m.ts10806

2018/11/15 10:52

エラーではないのでしょうか
shou_hitotose

2018/11/15 10:58

うーん。あまり初心者なので偉そうな口を言えたものではないのですが実行した分は問題なかったように見えました。
m.ts10806

2018/11/15 11:02

ん??質問本文にあるこれは?? >クラスYPanel,XPanelが重複していますというエラーが出てしまいました
shou_hitotose

2018/11/15 11:04

はい。言い方が悪かったですね。コマンドプロンプトでは出なかったのですが提出しようとしたところのチェックでは引っかかりYPanelが重複していますと表示されてしまいました。わかりにくくなってしまいすみません。
m.ts10806

2018/11/15 11:06

なるほど。それは再現確認に必要な情報なので追記してください。質問の最初と最後がつながってないので、何をゴールにするかを明確にしていただけると
shou_hitotose

2018/11/15 11:08

何度も何度もすみません。ここまで付き合っていただきありがとうございます。
shou_hitotose

2018/11/15 11:26

すみません。一時退出いたしますのでまたコメントを頂けたら幸いです。
dice142

2018/11/15 11:31

提出がどういうものなのか気になります。先生による手動チェックなのか、ツール的なのを使うのか。
shou_hitotose

2018/11/15 19:42

おそらくツール的なものだと思います。なんらかのプログラムだと
m.ts10806

2018/11/15 21:11

再現確認がとれない以上は難しいですね・・。もしかして1ファイルに全て書いてますか?
shou_hitotose

2018/11/15 21:12

そうですか・・・。すみません。この質問は諦めた方がよいかもしれませんね。
m.ts10806

2018/11/15 21:16

そのチェックツールが一般的に配布されているものなのか独自で作られたものかにもよりますね。ご自身の環境で動いていて後者であれば他人にはどうにもできません。
shou_hitotose

2018/11/16 00:51

おそらく後者でしょうね。とりあえずここまでつきあってくださりありがとうございます。
guest

回答1

0

自己解決

今回このプログラムを諦めることにしました。コメントしていただいた方ありがとうございました。

投稿2018/11/16 00:53

shou_hitotose

総合スコア66

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問