Graphics [Résolu]

Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
- - Dernière réponse : didoux95
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
- 2 avril 2008 à 17:01
Bonjour à tous.
Comment est ce que l'on peut combiner deux Graphics .. ? C'est-à-dire que j'ai un Graphics A et un Graphics B et que j'aimerai faire en sorte de les regrouper dans un seul et même Graphics (par exemple C).
J'ai envisagé plusiseurs solutions :  
   - convertir les Graphics en Image (mais j'ai pas trouvé comment .. :s ) puis les combiner avec l'aide de BufferedImage.
   - les convertir directement en Buferedimage (mais j'ai pas non plus trouvé comment .. u_u ) puis les combiner avec l'aide d'un autre BufferedImage.
   - recopier directement un des Graphics dans l'autre (mais j'ai pas trouvé de méthodes comprable à Graphics#drawXX(Graphics g) )

merci ..
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
493
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
7
3
Merci
package demo;
/*
 * GraphicsDemo.java
 */

import java.awt.*;
import javax.swing.*;

public class GraphicsDemo extends javax.swing.JFrame {

    private Graphics1 graphics1;
    private Graphics2 graphics2;

    public GraphicsDemo() {
        super("GraphicsDemo");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        getContentPane().setLayout(new GridLayout());
        setSize(600, 300);
        setLocationRelativeTo(null);
        graphics1 = new Graphics1();
        add(graphics1);
        graphics2 = new Graphics2();
        add(graphics2);
        add(new Graphics12());
    }

    public static void main(final String args[]) {
        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                new GraphicsDemo().setVisible(true);
            }
        });
    }

    class Graphics12 extends JComponent {

        @Override
        protected void paintComponent(final Graphics g) {
            super.paintComponent(g);
            graphics1.paintComponent(g);
            graphics2.paintComponent(g);
        }
    }

    class Graphics1 extends JComponent {

        @Override
        protected void paintComponent(final Graphics g) {
            super.paintComponent(g);
            g.drawOval(10, 100, 150, 100);
            g.drawRect(10, 100, 150, 100);
            g.drawString("1", 70, 150);
        }
    }

    class Graphics2 extends JComponent {

        @Override
        protected void paintComponent(final Graphics g) {
            super.paintComponent(g);
            g.setColor(Color.RED);
            g.drawOval(35, 75, 100, 150);
            g.drawRect(35, 75, 100, 150);
            g.drawString("2", 90, 150);
        }
    }
}

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 126 internautes nous ont dit merci ce mois-ci

Commenter la réponse de uhrand
Messages postés
493
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
7
3
Merci
> indiquer le Graphics à dessiner sur chaque composants

C'est impossible. Il faut dessiner sur le Graphics qui est envoyé par le système dans la méthode "paintComponent(Graphics g)"

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 126 internautes nous ont dit merci ce mois-ci

Commenter la réponse de uhrand
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
1
0
Merci
Slt. (excuse moi pour le retard de réponse.. )
Merci pour le code. Apparemment tu dessines les graphics dans un composant pour ensuite récupérer le graphcics final. Ca marche impec !  :o) Cependant, j'ai essayé de le modifer afin d'indiquer le Graphics à dessiner sur chaque composants, mais ca ne fonctionne pas. Est ce que tu pourrais me donner un petit coup de main .. ?

merci.
Commenter la réponse de didoux95
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
1
0
Merci
HAAaaa.. d'accord .. :(
merci pour ta réponse. Je vais voir ce que je peux faire ..
Commenter la réponse de didoux95