以下でGraphcsオブジェクトを使った、いくつかの描画を確認します。 下記のラジオボタンで切り替えて、ドラックして確認しましょう。
package paint; import java.awt.*;//Point、Color Graphicsなどのパッケージ import javax.swing.*;//JPanelのパッケージ import java.awt.event.*;//MouseMotionListenerなどのリスナーや、MouseEventなどのイベント用 import java.awt.image.BufferedImage;//編集可能なメモリイメージ用 //描画対象のパネル public class PaintPanel extends JPanel implements MouseMotionListener { Image brushImg;//ブラシイメージ管理用 //描画すべきタイミングで、呼び出されるメソッド public void paintComponent(Graphics g){ super.paintComponent(g); Color color1 = new java.awt.Color(0x99, 0, 0x0FF);//RGBの色を指定して色を作成 g.setColor(color1);//描画色設定 g.drawRect(5, 5, 200, 100);//(5,5)が左上隅の座標で、幅200、高さ100の長方形描画 g.drawOval(5, 5, 200, 100);//(5,5)が左上隅の座標で、幅200、高さ100の楕円描画 } public PaintPanel() {//コンストラクタ this.addMouseMotionListener(this);//このクラスに実装したインターフェイスを自身にセット } public void mouseDragged(MouseEvent e){//指定コンポーネントの上で、マウスのボタンを押してドラッグすると呼び出されます。 Point p = e.getPoint();//ドラックした所の座標取得 System.out.println(p.x + "," + p.y );//この行はデバック用で、完成後は削除 Graphics g = this.getGraphics();//描画ツール取得 } //ボタンを押さずに、マウスを指定コンポーネントで移動すると呼び出されます。 public void mouseMoved(MouseEvent e) { } }
|
|
上記で実験すると分かりますが、ドラックを開始する位置(クリック位置)の描画ができていないでしょう。
それには
MouseListenerのインターフェイスを実装して、
そこでも描画処理を行う必要があるのです。
以下は、MouseListenerインターフェイスの実装をしたコードです。
location.href = "#posApplet";