Всем привет 
Заранее извиняюсь за возможно не совсем подходящие имя темы, но не как не мог вспомнить как это правильно называется
Вообщем есть небольшой апплет который позволяет рисовать фигуры, в даном случае только елипс. Я хочу реализовать возможность предосмотра текущего размера (как например в ОО он отображается штрих - пунктиром) Вот сам апплет:
| Код | import java.awt.*; import javax.swing.*; import java.awt.geom.*; import java.awt.event.*; import java.util.*;
/** * @author Sadness */ public class DrawApp extends JApplet { public void init() { DrawPanel pDraw = new DrawPanel(); this.add(pDraw); } }
class DrawPanel extends JPanel { public DrawPanel () { shapes = new ArrayList<Ellipse2D>(); addMouseListener(new CoordinateListener()); addMouseMotionListener(new ChangeCoordinateListener()); } public void add ( double x, double y, double w, double h) { this.x = x; this.y = y; this.w = w; this.h = h;
ellipse = new Ellipse2D.Double (x, y, (w - x), (h -y)); shapes.add(ellipse);
repaint(); } public void paintComponent(Graphics g) {
super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; for (int ix = 0; ix < shapes.size(); ix++) { g2.fill(shapes.get(ix)); } } private class CoordinateListener extends MouseAdapter { public void mousePressed(MouseEvent event) { x = event.getX(); y = event.getY(); } public void mouseReleased(MouseEvent event) { w = tempX; h = tempY; add(x, y, w, h); repaint(); } } private class ChangeCoordinateListener extends MouseMotionAdapter { public void mouseDragged(MouseEvent event) { tempX = event.getX(); tempY = event.getY(); // Тут пытаюсь сделать этот педосмотр :} Graphics g = getGraphics(); Graphics2D g2 = (Graphics2D)g; el = new Ellipse2D.Double(x, y, (tempX - x), (tempY - y)); g2.setStroke(new BasicStroke(3)); g2.draw(el);
repaint();
} } private double x, y, w, h; // координаты private double tempX, tempY; // для хранения измен. координат private ArrayList<Ellipse2D> shapes; // массив фигур private Ellipse2D ellipse; private Ellipse2D el; }
|
Так вот, контуры будущей фигуры как бы отображаются, но очень сильно мигают. Подскажите пожалуйста как исправить если я вообще правильно делал  |