Graphics

Résolu
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 - 29 mars 2008 à 19:28
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 ..

4 réponses

uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
30 mars 2008 à 09:31
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);
        }
    }
}
3
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
2 avril 2008 à 16:42
> 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)"
3
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
2 avril 2008 à 16:02
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.
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
2 avril 2008 à 17:01
HAAaaa.. d'accord .. :(
merci pour ta réponse. Je vais voir ce que je peux faire ..
0
Rejoignez-nous