هنا أريد رسم دائرة فى مكان ما و تم عمل هذه الجزئية ، و أريد أيضاً عندما أضغط بال mouse فى مكان آخر يتم رسم نفس الدائرة بحجمها و ارتفعها فى المكان الجديد
----------------------------------------------------------------------------------------------------------------
جربت أكثر من طريقة و لكن لم تُحل المشكلة
import java.awt.Dimension;
import javax.swing.JFrame;
public class TestMoveOval extends JFrame {
private DrawOval drawOval;
public TestMoveOval() {
drawOval = new DrawOval();
getContentPane().add(drawOval);
}
public static void main(String[] args) {
TestMoveOval testMoveOval = new TestMoveOval();
testMoveOval.setDefaultCloseOperation(TestMoveOval.EXIT_ON_CLOSE);
testMoveOval.setSize(new Dimension(600, 300));
testMoveOval.setLocationRelativeTo(null);
testMoveOval.setVisible(true);
}
}
-----------------------------------------------------------------------------------------------------
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JPanel;
class DrawOval extends JPanel {
private int oval_x = 150, oval_y = 50, oval_width = 200, oval_height = 100;
private MyMouse myMouse;
// private Graphics2D g2d;
public DrawOval() {
myMouse = new MyMouse();
addMouseListener(myMouse);
addMouseMotionListener(myMouse);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLUE);
Graphics2D g2d = (Graphics2D) g;
g2d.fillOval(oval_x, oval_y, oval_width, oval_height);
}
private class MyMouse extends MouseAdapter {
int x, y, x1;
@Override
public void mousePressed(MouseEvent e) {
super.mousePressed(e);
x = e.getX();
y = e.getY();
repaint();
}
@Override
public void mouseReleased(MouseEvent e) {
}
}
}شكراً
