を使用してドラッグします。私は無料の手描きプログラム(教育目的)を作成するためにBrushStroke用にGraphics2D
,Point
、Line2D
を使用しています。私の問題は、私はマウスのドラッグを使用して描く線を得ることができるが、それはJPanel
の左上隅からマウスボタンを離したところから始まっています。 Point
(E.G Point startPoint、endPoint)を使用すると、マウスが移動しているときに描画し、リリース時に停止し、再度マウスを押したときに描画を開始することができます。誰かがマウスリスナー(mousedragged、...、押された、リリースされた、など)でコーディングを助けることができますか?Java 8 Graphics2D、フリーハンドマウスとしての描画はPoint(E.G Point pointStart)
public class GraphicsPanel extends JPanel implements MouseMotionListener, MouseListener {
private Color color;
private JColorChooser cc;
private JComboBox paintToolBox;
Point pointStart = null;
Point pointEnd = null;
GraphicsPanel(JColorChooser cc, Color color, JComboBox paintToolBox) {
this.cc = cc;
this.color = color;
this.paintToolBox = paintToolBox;
addMouseMotionListener(this);
}
@Override
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(cc.getColor());
Line2D line2D = new Line2D.Double(pointStart, pointEnd);
if (pointStart != null || pointEnd != null) {
g2d.draw(line2D);
}
}
@Override
public void mouseDragged(MouseEvent e) {
}
@Override
public void mouseMoved(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}
参照[カスタムペイントのアプローチ](https://tips4java.wordpress.com/2009/05/08/custom-painting-approaches /)、このタイプの描画を行うための2つの一般的な方法の実例を示します。例はRectangleを描画しますが、概念は同じです。 – camickr
ありがとう、それを調べます。 –