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

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

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

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

Q&A

解決済

2回答

574閲覧

Graphicsのエラー

MISHIRO

総合スコア27

Java

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

0グッド

0クリップ

投稿2017/06/27 10:11

編集2017/06/27 10:25

なぜかg.drawStringとg.drawLineでエラーが出ます。
importをしてないからだと思いimport文を書いてみましたがこのimport文は使用されていません。
といわれました。

エラー内容は
”メソッド drawLine(int, int, int, int) は型 Graphics で未定義です”
です
drawString,drawLineの下に波線が入りエラーがでており、コンパイルができません。

java

1import java.applet.Applet; 2import java.awt.Point; 3import java.awt.event.MouseEvent; 4import java.awt.event.MouseListener; 5 6public class Graphics extends Applet implements MouseListener{ 7 8 public void paint(Graphics g){ 9 g.drawString("abcdefghijklmn", 10, 50); 10 11 g.drawLine(5, 50, 100, 50); 12 } 13 14 15 public void mouseClicked(MouseEvent e){ 16 Point point = e.getPoint(); 17 System.out.println("X座標:" + point.x); 18 System.out.println("Y座標:" + point.y); 19 } 20 21 22 @Override 23 public void mousePressed(MouseEvent e) { 24 25 } 26 27 @Override 28 public void mouseReleased(MouseEvent e) { 29 30 } 31 32 @Override 33 public void mouseEntered(MouseEvent e) { 34 35 } 36 37 @Override 38 public void mouseExited(MouseEvent e) { 39 40 } 41}

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

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

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

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

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

LouiS0616

2017/06/27 10:22

どんなエラーが出たか書いてください。ビルド出来ないんですか?実行中に異常終了するんですか?想定通りに動作しないんですか?エラーメッセージがあるようならそれも本文に入れてください。
guest

回答2

0

ベストアンサー

メインクラスの名前Graphicsが本来アクセスしたいjava.awt.Graphicsをシャドウしている(隠している)ためです。

例えばpublic void paint(Graphics g){のようにpaintメソッドを宣言していますが、引数にあるGraphicsは本来java.awt.Graphicsでなければならないのに、この書き方ではあなたが書いたメインクラスだとみなされてしまいます。

通常は標準ライブラリーで提供されているクラスと同じ名前のクラスを定義しないようにした方がよいでしょう。この例でいえばメインクラスの名前をMyAppletなどに変更するとよいと思います。

投稿2017/06/27 10:26

KSwordOfHaste

総合スコア18394

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

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

MISHIRO

2017/06/27 10:28

回答ありがとうございます。 何がダメなのかわかりやすい解説までありがとうございます。 クラス名を変更するとエラーが消えました。
guest

0

ご自身で作ったクラスGraphicsの名前を変えてください。
Javaでもともと用意されているクラスと名前がもろ被りしています。

投稿2017/06/27 10:24

LouiS0616

総合スコア35660

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

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

MISHIRO

2017/06/27 10:26

回答ありがとうございます。 クラス名を変更したらエラーが消えました。 まさかこんな初歩的なミスだとは思いませんでした...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問