Potrebna mi je jedna mala pomoc, treba da u ovom mouseDraged-u omogucim pomeranje ove elipse (odnosno kruga). Znam da me neka sitnica muci, pa ne mogu vise da se nerviram, pa ako mozete pomozite...Pozzz..
P.S. Ovaj JPanel je ubacen u neki GUI, ali to je naravno sada nebitno...
package domaci;
import java.awt.AlphaComposite;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Composite;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.geom.Ellipse2D;
import java.util.ArrayList;
import javax.swing.JPanel;
public class DrowPanel extends JPanel implements MouseListener {
private Shape selectedShape;
private ArrayList<Shape> shapes = new ArrayList<Shape>();
private AlphaComposite transparency = AlphaComposite.getInstance(
AlphaComposite.SRC_OVER, 0.3f);
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
for (Shape s : shapes) {
GradientPaint gp = new GradientPaint(s.getBounds().x,
s.getBounds().y, Color.BLUE, s.getBounds().x,
getBounds().y, Color.BLACK);
g2d.setPaint(gp);
Composite orginalComposite = g2d.getComposite();
if (s == selectedShape) {
float[] dashPattent = { 30, 10, 10, 10 };
g2d.setStroke(new BasicStroke(8, BasicStroke.CAP_BUTT,
BasicStroke.JOIN_MITER, 10, dashPattent, 0));
g2d.setComposite(transparency);
}
g2d.fill(s);
g2d.setPaint(Color.BLACK);
g2d.draw(s);
g2d.setStroke(new BasicStroke());
g2d.setComposite(orginalComposite);
}
}
DrowPanel() {
addMouseListener(this);
}
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
boolean selected = false;
for (Shape s : shapes) {
if (s.contains((e.getPoint()))) {
selectedShape = s;
selected = true;
}
}
if (!selected) {
selectedShape = null;
Ellipse2D.Double el = new Ellipse2D.Double(e.getX() - 35,e.getY() - 35, 70, 70);
shapes.add(el);
}
repaint();
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseDraged(MouseEvent e) {
if(selectedShape != null){
Ellipse2D el = (Ellipse2D)selectedShape;
}
}
}






mouseReleased - Pomeranje...