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