DrawString et affichage dans un JPanel
Bonjour, j'ai des informations qui devraient s'afficher dans un JPanel, lui même dans une JFrame, via la méthode drawString...
Le problème est le suivant: au debugger, tout se passe bien, les différentes infos sont prises en compte, mais pas d'affichage!!
Pour avoir des infos en temps reel, j'ai utilisé un Thread;
voici les éléments de code:
méthodes paintComponent et run de la JFrame:
Code:
1 2 3 4 5
|
// Methode Run
public void run(){
this.repaint();
} |
Code:
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
|
//Methode paintComponent
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2D=(Graphics2D)g;
if (this.getSimulation()!=null){
// Affiche le nombre de passagers restants dans l'avion
int nbPassagersRestants = this.getSimulation().getNbpanic();
String passagersRestants = "Il reste "+nbPassagersRestants+" passagers dans l'avion";
g2D.drawString(passagersRestants, 10,10);
// Affiche le nombre de passagers evacues
if (this.getSimulation().getNbdehors()!=0){
int nbPassagersEvacues = this.getSimulation().getNbdehors();
String passagersEvacues = "Déjà "+nbPassagersEvacues+" passagers ont été évacués";
g2D.drawString(passagersEvacues, 20,10);}
else{
String passagersEvacues = "Aucun passager évacué";
g2D.drawString(passagersEvacues, 20,10);
}
// Affiche le nombre de passagers morts
if (this.getSimulation().getNbdead()!=0){
int nbPassagersMorts = this.getSimulation().getNbdead();
String passagersMorts = "Malheureusement, "+nbPassagersMorts+" passagers sont décédés durant l'évacuation";
g2D.drawString(passagersMorts, 30,10);}
else{
String passagersMorts = "Aucun décés signalé";
g2D.drawString(passagersMorts, 30,10);
}
}}
} |
et la méthode utilisé pour l'execution:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public void simulationGraphique(String a){
int nbCycle=Integer.parseInt(a);
Ocean indien = new Ocean(32,80);
laGrille = new Grille(indien, this.avion);
donneesDirect = new SuiviDonnees(this.getSimulation());
donneesDirect.start();
laGrille.start(this.simulation, nbCycle);
this.jContentPane.add(laGrille);
this.jContentPane.add(donneesDirect);
this.setVisible(true);
} |
Merci d'avance à ceux et celles qui ont une idée pour arranger ce problème!!