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

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

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

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

Q&A

解決済

2回答

226閲覧

コードにエラーが出てコンパイルできない

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

0グッド

0クリップ

投稿2019/04/19 03:23

Eclipseで勉強しています。以下のコードの
「class DrawPanel extends JPanel 」のところの「DrawPanel」
にギザギザの赤い線が出てエラーななっています。
エラー内容「型DrawPanelは既に定義されています」と出ています。
どこに定義されているのかよくわからない状態です。
参考書にはエラー箇所からしか記載されていないので、前の動いたList4_5.java を参考にして自分で
書いています。

まずはこのコードを実行したいので、よろしくお願いいたします。

//List4_7.java package sample2; import java.awt.BorderLayout; import java.awt.Graphics; import java.awt.Image; import java.net.URL; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; public class list4_7 extends JFrame { public list4_7() { DrawPanel panel = new DrawPanel(); this.add(panel, BorderLayout.CENTER); this.setSize(300, 200); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { new list4_7(); } } class DrawPanel extends JPanel { //エラー箇所 private static final long serialVersionUID = 1L; private Image im = null; public DrawPanel(){ URL url; try { url = this.getClass().getResource ("/sample.jpg"); im = ImageIO.read(url); } catch (Exception e) {} } @Override public void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(im, 50, 50, this); } }
//List4_5.java package sample2; import java.awt.BorderLayout; import java.awt.Graphics; import java.awt.Image; import javax.swing.JFrame; import javax.swing.JPanel; public class list4_5 extends JFrame { public list4_5() { DrawPanel panel = new DrawPanel(); this.add(panel, BorderLayout.CENTER); this.setSize(400, 400); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { new list4_5(); } } class DrawPanel extends JPanel { private static final long serialVersionUID = 1L; private Image im = null; public DrawPanel() { im = java.awt.Toolkit.getDefaultToolkit().getImage( "d:\pleiades\sample2\src\sample2\sample.jpg"); } @Override public void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(im, 50, 50, this); } }

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

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

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

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

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

guest

回答2

0

sample2で同じ名前のDrawPanelを作っているからではないでしょうか。
適当に名前変えて実行してみたらいけそうな気がしますが...

あと、asahina1979さんもコメントしている通り、1ファイル1クラスを心がけてください。

投稿2019/04/19 03:29

stdio

総合スコア3307

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

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

退会済みユーザー

退会済みユーザー

2019/04/19 04:54

ありがとうございます。sample2/src/sample2にファイルを複数作ってやっていましたが、それではだめということですか。30個ぐらいでも参考書の途中のページでは動いていましたけど。あと半分ぐらいあるので、どのように構成すればいいか教えていただけますでしょうか。
stdio

2019/04/19 05:08

なんだその参考書。本当にJavaの参考書ですか? クラスを継承するしかなさそうですね。別にファイルを複数作ること自体は別に構いませんがクラスの名前はすべて変えましょう。 基本的にファイル名=クラス名にするのが一般的です。
退会済みユーザー

退会済みユーザー

2019/04/19 05:15

eclipseでプログラミングしています。Eclipseの勉強をしています。
stdio

2019/04/19 05:31

そうですか、Eclipseそのものはあまり勉強するところないと思うけど... それ何の報告?
guest

0

ベストアンサー

1ファイル1クラスを心がけてください。
きっと同じパッケージの別javaファイルに同じクラスがいます

投稿2019/04/19 03:27

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2019/04/19 04:47

ありがとうございます。出来ました。 src/sample2_2/List2_7.java src/sample2_2/sample.jpgでうまく表示できるのですが、 src/images/sample.jpgを使って表示するときの,相対アドレスはどうなりますか。おしえていただけますか。お願い致します。
Y.H.

2019/04/19 05:11

「コードにエラーが出てコンパイルできない」とは別の問題なので 別の質問としてください。
退会済みユーザー

退会済みユーザー

2019/04/19 05:20

すみませんが
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問