IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

2D Java Discussion :

Maintenir le dessin visible


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut Maintenir le dessin visible
    Salut,
    Je début avec le dessin en java,
    j'ai voulu crée une interface graphique qui affiche des lignes dans une fenêtre
    J'ai crée 2 classes:
    - Formes qui hérite de JPanel dans la quel j'ai redéfini la méthode paintComponent pour afficher les lignes
    - MainFrame qui hérite de la classe JFrame et qui va contenir le jpanel Formes et l'afficher, et c'est cette classe qui contient la méthode main
    Le problème c'est qu'on exécutant mon programme les lignes s'affiche une seul fois puis ils disparaissent (même chose si je redimensionne la fenêtre).
    j'ai essayé d'utiliser la méthode repaint() mais sans résultat, de ce fait j'ai voulu avoir une idée sur comment résoudre ce problème et merci d'avance

    Voici le code source:

    Classe Formes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    import java.awt.*;
    import javax.swing.*;
    public class Formes extends JPanel {
     
    public void paintComponent(Graphics g) {
      super.paintComponent(g);
      g=this.getGraphics();
      Graphics2D g2 = (Graphics2D) g;
      Color c = g.getColor();
      g2.setColor(Color.RED);
      int x=0;
      int y=0;
      int i=50;
      while(i>0){
        g2.drawLine(x, y, 20, 20);
        x+=3;
        y+=5;
        i--; 
      }
     } 
    }
    Classe MainFrame:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    mport javax.swing.WindowConstants;
    import javax.swing.SwingUtilities;
     
    public class MainFrame extends javax.swing.JFrame {
     
    	/**
            * Auto-generated main method to display this JFrame
            */
    	private Formes forme;
     
    	public MainFrame() {
    		super();
     
    		initGUI();
    	}
     
    	private void initGUI() {
    		try {
    			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    			pack();
    			setSize(400, 300);
    			forme=new Formes();
    			this.add(forme);
    			forme.repaint();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    	public static void main(String[] args) {
    	       MainFrame frame=new MainFrame();
    	       frame.setVisible(true);
    		}
    }

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Pour dessiner sur un JComponent il ne faut JAMAIS utiliser les Graphics obtenus par la méthode getGraphics mais ceux fournis en paramètre de la méthode paintComponent.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut
    Merci sinok
    j'ai supprimé la ligne g=this.getGraphics() est tout est bon maintenant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Déterminer si un dessin est entièrement visible
    Par cmail dans le forum IGN API Géoportail
    Réponses: 8
    Dernier message: 29/04/2014, 08h46
  2. Réponses: 12
    Dernier message: 20/10/2009, 16h09
  3. determiner les ligne visible ds un RichEdit
    Par hhfr dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/09/2002, 18h15
  4. Form principale non visible au demarrage!!!!
    Par toufou dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/07/2002, 21h49
  5. Réponses: 3
    Dernier message: 12/06/2002, 19h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo