Dessin en java

Bonjours tout le monde ,
J'ai comme projet de crée un dessin en java , de préference j'aimerai faire un poisson dans son aquarium a l'aide du logiciel eclipse et je n'arrive malheureusement pas a faire de dessin qui fonctionne correctement , si l'un d'entre vous s'y connais , pourrais t'il m'aider en me faisant un exemple de dessin en plusieurs class ou du moins me donner quelques solutions , se serai sympa de votre part. Merci !

2 réponses

  1. Modérateur
    Bonjour,

    Pour le dessin en Java tu peux regarder la classe Graphics.

    https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics.html

    import java.awt.Color;
    import java.awt.Container;
    import java.awt.Graphics;
    
    import javax.swing.JFrame;
    
    public class Test {
        public static void main(String[] args) {
    
            JFrame frame = new JFrame();
            frame.setContentPane(new Container() {
                @Override
                public void paint(Graphics g) {
                    super.paint(g);
                    g.setColor(Color.RED);
                    g.drawRect(50, 50, 100, 100);
                    g.fillPolygon(new int[] { 300, 250, 300, 350 },
                            new int[] { 50, 100, 150, 100 }, 4);
                    g.setColor(Color.BLACK);
                    g.fillOval(190, 75, 20, 50);
                    g.setColor(Color.BLUE);
                    for (int i = 0; i <= 180; i++)
                        g.drawArc(200 - i, 350 - i, 2 * i, 2 * i, 4 * i, 180);
                }
            });
    
            frame.setSize(400, 550);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
    }

    Remarque : il est également possible d'utiliser la classe Graphics2D qui contient un peu plus de fonctionnalités :

    https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html

    import java.awt.Graphics2D;
    
    @Override
    public void paint(Graphics g) {
        super.paint(g);
        Graphics g2 = (Graphics2D) g;
    0
    1. Merci de ta reponse , je pense que sa m'aidera cependant je dois egalement faire en plus de rectangle et autre sorte de graphiques des petits dessins tel qu'un poisson par exemple ou autre, pourrai tu m'aider une nouvelle fois si cela est possible.
      Mercii d'avance encore une fois
      0
    2. Modérateur
      Tout dépend du niveau de précision dont tu as besoin pour dessiner le poisson.

      Ça c'est facile (drawPolygon pour la queue, drawOval pour le corps et l'oeil)
      Ça c'est beaucoup plus dur (ou alors avec drawImage, mais c'est de la triche)
      0
  2. Modérateur
    Je me suis amusé à faire le code pour dessiner des poissons simples.
    Tu peux voir le snippet ici : Dessiner des poissons

    Exemple :

    import javax.swing.JFrame;
    
    import ccm.kx.swing.Fish;
    
    public class FindingNemo {
    
        public static void main(String[] args) {
    
            Fish marlin = new Fish(150, 100, -25, 100, 75, -25, Color.RED, Color.RED);
            Fish dory = new Fish(200, 155, 200, 50, 50, -10, Color.BLUE, Color.YELLOW);
    
            JFrame frame = new JFrame();
            frame.setContentPane(new Container() {
                private static final long serialVersionUID = 1L;
    
                @Override
                public void paint(Graphics g) {
                    super.paint(g);
                    g.setColor(Color.CYAN);
                    g.fillRect(0, 0, getWidth(), getHeight());
                    marlin.draw((Graphics2D) g, 200, 200);
                    dory.draw((Graphics2D) g, 400, 200);
                }
            });
    
            frame.setSize(600, 400);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
    }

    0