2

マウスでウィンドウに描画できるプログラムを作成しようとしています。これまでのところ、クリックするとドットが表示される場所に到達しましたが、ページ上でマウスをドラッグすると何かが描画されるように、ドラッグ メソッドを追加する必要があります。誰かが私のコードを見て、できるところを手伝ってくれませんか?

これが私のコードです:

import javax.swing.*;
import java.awt.event.*;
public class mouse {
    private static int x,y;
    private static draw object = new draw ();
    public static void main(String[] args){
        JFrame frame = new JFrame ("Mouse");
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400,400);
        frame.add(object);
        object.addMouseListener(new AL());
    }
    static class AL extends MouseAdapter{
      public void mousePressed(MouseEvent e){
        x = e.getX();
        y = e.getY();
        object.drawing(x, y);
      }
      public void mouseDragged( MouseEvent e) {
        x= e.getX();
        y= e.getY();
        object.drawing(x, y);
      }
    }
}

import javax.swing.*;
import java.awt.*;

public class draw extends JPanel {
    private static int x,y;
    public void drawing (int xx, int yy){
        x=xx;
        y=yy;
        repaint();
    }

    public void paintComponent (Graphics g){
        g.setColor(Color.black);
        g.fillOval(x, y, 10, 10);
    }
}
4

1 に答える 1

0

私が持っている1つのアイデアは、マウスがクリックされるたびにマウス座標をそれぞれ別のリストに追加し、リストのサイズに基づいて描画することですが、マウスをドラッグしてPath2D.lineTo(x, y)使用e.getX()e.getY()ているため、 x と y座標。この後Path2D.moveTo(x, y)、マウスが移動するピクセルごとにライン パスが追加されていることを確認します (これにより、各移動が直線のように見えるのではなく、「描画」している方向に移動する線のようになります)。また、いくつかのヒント:

  1. 私の経験から、それmouseDraggedmouseMotionAdapter通常、単にmouseAdapter.

  2. これは描画プログラムなので、個人的には、これをより大きなものに拡張することを実際に計画している場合は、将来使用される円のサイズの変数を設定します (例: g.fillOval(x, y, brushSize,ブラシサイズ)))。

于 2013-12-03T03:36:31.703 に答える