このプログラムを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で質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- Java java final 1 2022/06/10 22:49
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Java Java 配列<選挙> 4 2023/07/31 15:07
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「例外 *** は対応する try 文...
-
干支の計算で。。。
-
本文から指定文字列の抽出
-
eclipseに記述したjavaファイル...
-
<forEach> 内で供給された "ite...
-
javaで警告音
-
Androidプログラムについて
-
ファイル名を動的に生成したい
-
ActionForm form にnullが入っ...
-
importするには java.io.*; imp...
-
importとextendsの用い方の違い...
-
Javaを使ってデジタル時計を作...
-
JSPやサーブレットでSystem.out...
-
ループ処理の際、最後だけ","を...
-
C言語のポインターに関する警告
-
配列にnullを代入すると、null...
-
ページング
-
[JAVA]try 内の変数を外で!?
-
ORA-01858: 数値を指定する箇所...
-
System.out.printlnの出力先
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「例外 *** は対応する try 文...
-
eclipseに記述したjavaファイル...
-
<forEach> 内で供給された "ite...
-
setAttribute(String, int)は適...
-
干支の計算で。。。
-
Javaを使ってデジタル時計を作...
-
HTMLでのTableタグデータ取得方法
-
importするには java.io.*; imp...
-
生年月日と今日の日付から年齢...
-
文字列を数式に
-
シャットダウンフックが呼ばれない
-
Javaで常駐するソフトを作って...
-
フレームの×ボタンを押しても閉...
-
Selenium IDEでexportしたコー...
-
文字サイズが可変のラベル
-
jFrameを使って複数の画面を生...
-
【java】検索フォームの検索結...
-
Java での グローバルIP取得
-
(急募)JavaカレンダーをGUI可に...
-
ファイル名を動的に生成したい
おすすめ情報