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 82 83 84 85 86 87 88
|
import java.awt.Color;
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<FormeColoree> formes;
public void addShape(FormeColoree forme) {
formes.add(forme);
repaint();
}
public void addLine(Point2D origine, Point2D destination,Color color) {
formes.add(new FormeColoree(new Line2D.Double(origine,destination),color));
repaint();
}
public void addLine(double x1,double y1, double x2, double y2,Color color) {
formes.add(new FormeColoree(new Line2D.Double(x1,y1,x2,y2),color));
repaint();
}
public MonGraphe() {
// TODO Raccord de constructeur auto-généré
super();
formes = new ArrayList<FormeColoree>();
}
/*
* (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(FormeColoree forme : formes) {
// On dessine la forme
forme.dessiner(g2d);
}
}
public static void main(String[] args) {
MonGraphe graphe = new MonGraphe();
graphe.addLine(0, 0, 80, 100,Color.red);
graphe.addLine( 80, 100,200,150,Color.blue);
graphe.addLine( 200,150,320,100,Color.yellow);
graphe.addLine( 320, 100,400,0,Color.black);
graphe.addLine( 0, 150,400,150,Color.pink);
graphe.addLine( 50, 140,150,140,Color.orange);
graphe.addLine( 250, 140,350,140,Color.green);
JFrame f = new JFrame();
f.add(graphe);
f.setSize(400,300);
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
} |
Partager