このプログラムをcreateImage()を使ってイメージを作りたいのですが自分で変更してもコンパイルできません><;どのように変更したらイメージをつくることができるのでしょうか?回答よろしくおねがいしまあす(^^;
import java.awt.Color;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.awt.image.BufferedImage;
import javax.swing.JComponent;
import javax.swing.JFrame;
class Test extends JComponent implements MouseMotionListener { public static void main(String[] args) { JFrame frame = new JFrame();
frame.getContentPane().add(new Test());
frame.setBounds(0 , 0 , 400 , 300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT ON CLOSE);
}
Image image;
public Test() { addMouseMotionListener(this);
image = new BufferedImage(400, 300, BufferedImage.TYPE INT RGB);
Graphics g = image.getGraphics();
g.setColor(new Color(0xFF, 0xFF, 0xFF));
g.fillRect(0, 0, 400, 300);
}public void paintComponent(Graphics g) { g.drawImage(image, 0, 0, this);
}
public void mouseDragged(MouseEvent e) { Graphics g = image.getGraphics();
g.setColor(new Color(0, 0, 0));
g.fillOval(e.getX() - 5, e.getY() - 5, 5 , 5);
repaint();
}public void mouseMoved(MouseEvent e) {}
}
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
createImageでイメージを作ってグラフィックコンテクストを取得するためには、
取得しようとしているコンポーネントが表示されている必要があります。
以下のように修正/追加すれば同じように表示されると思います。
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
class Test extends JComponent implements MouseMotionListener {
public static void main(String[] args) {
JFrame frame = new JFrame();
Test test = new Test();
frame.getContentPane().add(test);
frame.setBounds(0 , 0 , 400 , 300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
test.SetImage();
};
Image image = null;
public Test() {};
public void SetImage() {
addMouseMotionListener(this);
//image = new BufferedImage(400, 300, BufferedImage.TYPE_INT_RGB);
image = createImage(400, 300);
Graphics g = image.getGraphics();
g.setColor(new Color(0xFF, 0xFF, 0xFF));
g.fillRect(0, 0, 400, 300);
};
public void paintComponent(Graphics g) { if (image != null) g.drawImage(image, 0, 0, this); };
public void mouseDragged(MouseEvent e) {
Graphics g = image.getGraphics();
g.setColor(new Color(0, 0, 0));
g.fillOval(e.getX() - 5, e.getY() - 5, 5 , 5);
repaint();
};
public void mouseMoved(MouseEvent e) {};
}
No.1
- 回答日時:
JComponentの場合、createImage()を使う必要はないので使わないでください。
現在のコードのようにBufferedImageを使えば十分です。AWTコンポーネントで、昔はよくcreateImage()を使ってダブルバッファリングをやりましたが、コンポーネントが可視でないと正常に動かないなど、使いづらい面があります。JComponentではダブルバッファリングがデフォルトで実装されており、Image/BufferedImageは、継続描画(インクリメンタルドローイング)を実現するために主に使います。お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
setAttribute(String, int)は適...
-
「例外 *** は対応する try 文...
-
サーバーAからサーバーBへPOST...
-
eclipseに記述したjavaファイル...
-
do while文のエラー??
-
Selenium IDEでexportしたコー...
-
<forEach> 内で供給された "ite...
-
importするには java.io.*; imp...
-
ActionForm form にnullが入っ...
-
JAVAのアプレットの文の改行方法。
-
ColabでのPytorchのエラー
-
【java】検索フォームの検索結...
-
Javaを使用して定時送信をしたい
-
Javaを使ってデジタル時計を作...
-
System.err. printlnとSystem.o...
-
Path型をString型へ変換する(Java)
-
変数を動的に作るには?
-
変数を動的に利用するには?
-
Javaで改行などが出来ないのです。
-
JSPやサーブレットでSystem.out...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
「例外 *** は対応する try 文...
-
Selenium IDEでexportしたコー...
-
ColabでのPytorchのエラー
-
setAttribute(String, int)は適...
-
Javaを使ってデジタル時計を作...
-
<forEach> 内で供給された "ite...
-
importするには java.io.*; imp...
-
importとextendsの用い方の違い...
-
do while文のエラー??
-
javaで警告音
-
ActionForm form にnullが入っ...
-
(急募) Java (CSVをしよう)一...
-
文字サイズが可変のラベル
-
JavaアプリでWWWサーバにアクセ...
-
生年月日と今日の日付から年齢...
-
正規表現について
-
import 文
-
Androidで画面遷移ができません.
-
【JAVAエラー】互換性のない型...
おすすめ情報