1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MonGraphe extends JPanel{
/**
*
*/
private static final long serialVersionUID = -3688001984319297948L;
private List<Shape> shapes;
public void addShape(Shape shape) {
shapes.add(shape);
repaint();
}
public void addLine(Point2D origine, Point2D destination) {
shapes.add(new Line2D.Double(origine,destination));
repaint();
}
public void addLine(double x1,double y1, double x2, double y2) {
shapes.add(new Line2D.Double(x1,y1,x2,y2));
repaint();
}
public MonGraphe() {
// TODO Raccord de constructeur auto-généré
super();
shapes = new ArrayList<Shape>();
}
/* (non-Javadoc)
* @see javax.swing.JComponent#paintComponent(java.awt.Graphics)
*/
@Override
protected void paintComponent(Graphics g) {
// TODO Raccord de méthode auto-généré
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
//Pour que le dessin soit un peu plus "joli"
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//Pour chaque forme de la collection
for(Shape shape : shapes) {
//On dessine la forme
g2d.draw(shape);
}
}
public static void main(String[] args) {
MonGraphe graphe = new MonGraphe();
graphe.addLine(0, 0, 80, 100);
graphe.addLine( 80, 100,200,150);
graphe.addLine( 200,150,320,100);
graphe.addLine( 320, 100,400,0);
graphe.addLine( 0, 150,400,150);
graphe.addLine( 50, 140,150,140);
graphe.addLine( 250, 140,350,140);
JFrame f = new JFrame();
f.add(graphe);
f.setSize(400,300);
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
} |