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

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

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

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

解決済

java 簡易的ペイントソフトでの文字入力

uTenMakr
uTenMakr

総合スコア0

Java

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

1回答

0評価

0クリップ

1527閲覧

投稿2018/12/02 12:46

編集2022/01/12 10:58

前提・実現したいこと

現在学校の課題でペイントソフトを作っています。
今目指しているのは、図形を描写しつつ、文字も打てるようにする所までです。
ターミナルでの文字の出力はできているのですが、文字がウィンドウに現れません。

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

エラーメッセージ

該当のソースコード

ソースコード
import java.util.;
import java.awt.
;
import java.awt.event.*;
class Paint2 extends Frame implements MouseListener, MouseMotionListener,KeyListener {
int x, y;
String key = "";
public static int a;
ArrayList < Figure > objList;
Figure obj;

public static void main(String args[]) {
Paint2 f = new Paint2();
f.setSize(640, 480);
f.setTitle("Paint Sample");
f.addWindowListener(new WindowAdapter() {
@Override public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.setVisible(true);
}

Paint2() {
objList = new ArrayList < Figure > ();
addMouseListener(this);
addMouseMotionListener(this);
addKeyListener(this);
requestFocus();
}
@Override public void paint(Graphics g) {
Figure f;
for (int i = 0; i < objList.size(); i++) {
f = objList.get(i);
f.paint(g);
}
if (obj != null) obj.paint(g);
}
//////////////////////////////////////////////////////////////////////////////
public void KeyExit(Graphics g) {
g.drawString(""+ key, 20,100);
}
public void keyTyped(KeyEvent e) {
System.out.println("Typed '"+e.getKeyChar()+"'");
key = key + e.getKeyChar();
repaint();
}
public void keyPressed(KeyEvent e) {}
public void keyReleased(KeyEvent e) {}
///////////////////////////////////////////////////////////////////////////////

public void mousePressed(MouseEvent e) { x = e.getX(); y = e.getY(); obj = new Circle(); obj.moveto(x, y); objList.add(0, obj); repaint();

}
public void mouseReleased(MouseEvent e) {
x = e.getX();
y = e.getY();
obj = new Circle();
obj.moveto(x, y);
objList.add(0, obj);
repaint();
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {
a++;
}
public void mouseExited(MouseEvent e) {}
public void mouseDragged(MouseEvent e) {
x = e.getX();
y = e.getY();
obj = new Circle();
obj.moveto(x, y);
objList.add(0, obj);
repaint();
}
public void mouseMoved(MouseEvent e) {}
}

class MyWindowAdapter extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
class KeyEventTest {
public static void main(String[] args) {
KeyEventFrame f = new KeyEventFrame();
f.setVisible(true);
}
}

class Coord {
int x, y;
Coord() {
x = y = 0;
}
public void move(int dx, int dy) {
x += dx;
y += dy;
}
public void moveto(int x, int y) {
this.x = x;
this.y = y;
}
}
class Figure extends Coord {
int color;
Figure() {
color = 0;
}
public void paint(Graphics g) {}
}
class Circle extends Figure {
int size;
public static int count=1;
Circle() {
System.out.println(count);
count++;
if(count%9==0){
size=10;
}else{
size=50;
}
}

@Override public void paint(Graphics g) {
if(Paint2.a%3==0)
{
g.setColor(Color.green);
}
if(Paint2.a%3==1)
{
g.setColor(Color.red);
}
if(Paint2.a%3==2)
{
g.setColor(Color.blue);
}
if(size==10){
g.drawOval(x - size / 2, y - size / 2, size, size);
}else{
g.drawRect(x - size / 2, y - size / 2, size, size);
}
}
}

試したこと

ここに問題に対して試したことを記載してください。

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

ここにより詳細な情報を記載してください。

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

kei344
kei344

2018/12/02 13:20

(質問文は編集できます)質問文のコードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。また、質問タグが「JavaScript」になっていますが、内容が「JAVA」です。
uTenMakr
uTenMakr

2018/12/02 13:46

初めてなもので、すみません、ありがとうございます!

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Java

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