Dessin en java

Fermé
jean75s Messages postés 3 Date d'inscription vendredi 18 mars 2016 Statut Membre Dernière intervention 8 avril 2016 - 18 mars 2016 à 18:42
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 20 mars 2016 à 01:41
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 !
A voir également:

2 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
19 mars 2016 à 14:13
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
jean75s Messages postés 3 Date d'inscription vendredi 18 mars 2016 Statut Membre Dernière intervention 8 avril 2016
19 mars 2016 à 16:23
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
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
19 mars 2016 à 17:18
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
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
Modifié par KX le 20/03/2016 à 11:58
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