Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1388 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] Problème de dessin dans jPanel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] Problème de dessin dans jPanel

n°1994003
VinceSSJ
Posté le 18-05-2010 à 11:21:05  profilanswer
 

Bonjour à tous,
 
voilà je voudrais tracer dans un jPanel un rectangle suivant les dimensions préalablement indiquées dans une boite de dialogue.
 
Voici le code du JFrame:
 
 
public class EDT extends javax.swing.JFrame {
 
    private LesActivités edt;
    private Activité ici;
 
    /** Creates new form EDT */
    public EDT() {
        initComponents();
        edt=new LesActivités();
        ici=new Activité();
    }
 
    public void paint(Graphics g){
        super.paint(g);
        if(edt.getNb()!=0){
            ici=edt.rechActivité();
            afficheRect(ici.getCoul(), ici.getNom(), ici.getDurée(), ici.getHdeb(), Frise);
 
        }
    }
 
    public void afficheRect(Color co, String k, int h, int y, JPanel pan){
        Graphics g=pan.getGraphics();
        int DepartY=(Frise.getHeight()/13)*(y-8);
        int Hauteur=(Frise.getHeight()/13)*h;
        int Largeur=Frise.getWidth();
        g.setColor(co);
        g.drawRect(0, DepartY, Largeur, Hauteur);
        g.setFont(new Font("Helvetica",Font.PLAIN,12));
        g.drawString(k, 15, DepartY+15);
    }
 
                       
    private void MonumentActionPerformed(java.awt.event.ActionEvent evt) {                                          
        ChoisirMonument diag;
        diag=new ChoisirMonument(this, true);
        diag.setVisible(true);
        if(diag.ok==true){
            edt.ajoutActivité(diag.acti);
        }
}                      
 

 
Ma classe Activités sert à créer une activité selon des paramètres choisis. Ces paramètres sont rentrés dans ma boite de dialogue ChoisirMonument et sont récupérées pour tracer mon rectangle.
Ma classe LesActivités gère mes activités dans un tableau.
 
Je veux donc récupérer la dernière activité créée et dessiner son "rectangle" dans mon jPanel
Probleme rien ne se passe !
Ma fonction afficheRect marche je l'ai testée, mais rien ne s'affiche.
Juste quand je réduis ma fenetre et que je la ragrandit que le programme me sort une erreur "Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
"
 
Je tiens aussi à préciser que j'ai voulu tout faire en SWING mais comme un c** j'ai pris mes boites de dialogue en Dialog et non JDialog, est ce que ça pose probleme ?
 
Merci d'avance !
 
 
 
EDIT :
Je pensais que ça venait forcément de mon paint() mais j'ai aussi des doutes sur ma classe LesActivités donc je poste son code :
 
public class LesActivités {
 
    private Activité tab[];
    private int nb;
 
    public LesActivités(){
        nb=0;
        tab=new Activité[14];
    }
 
    public void ajoutActivité(Activité a){
        tab[nb++]=a;
    }
 
    public Activité rechActivité(){
        return tab[nb];
    }
 
    public int getNb(){
        return nb;
    }
 
    public void resetTab(int n){
        tab[n]=null;
    }
}


Message édité par VinceSSJ le 18-05-2010 à 11:29:07
mood
Publicité
Posté le 18-05-2010 à 11:21:05  profilanswer
 

n°1994281
VinceSSJ
Posté le 18-05-2010 à 21:09:24  profilanswer
 

Bon j'ai réussi à corriger le problème tout seul ^^
 
L'erreur venait bien du paint()
 
J'ai donc procédé avec une boucle et ça marche !

    public void paint(Graphics g){
        super.paint(g);
        if(edt.getNb()!=0){
            for(int i=0;i<edt.getNb();i++){
                ici=edt.retActivité(i);
                afficheRect(ici.getCoul(), ici.getType(), ici.getNom(), ici.getDurée(), ici.getHdeb(), Frise);
            }
        }
    }

 
Enfin en partie, puisque pour que les dessins se voient dans mon JPanel il faut avant tout que je réduise/agrandisse ma Frame au moins une fois, comme si ça "amorçait" mon paint()... bizarre ??


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java] Problème de dessin dans jPanel

 

Sujets relatifs
Problème de requête de calculs de moyennesProblème avec SlideToggle
[Résolu] Problème variable php qui renvoie rien[RESOLU] probleme d'espace et de point dans une recherche
Problème d'affichage diffèrent sur IE et ChromeProblème lors du téléchargement d'une image
problème à la compilationEtudier les mécanismes de sécurité de Java
API Java - package gnu.ioProblème avec Easyphp
Plus de sujets relatifs à : [Java] Problème de dessin dans jPanel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR