Problème d'affichage de menu

Résolu
Signaler
Messages postés
59
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
13 janvier 2006
-
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
-
Bonjour
Je voudrais savoir pourquoi ma JFrame ne veut pas afficher mon menu:
Voilà ma source je ne vois vraiment pas où est ce que j'ai fait une erreur
merci d'avance

import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import java.awt.geom.Point2D;
import java.awt.geom.Point2D.Double;
import java.lang.Math;
import javax.swing.*;





public class Simulation extends JFrame implements MouseListener, Runnable


{


Image offscreen;


Graphics gb; // graphics buffer


boolean running = false;


Thread runner;


double time;


Membrane m;


double pas_de_recherche;


int cpt,pos;


public static void main(String[] args)


{


Simulation sim = new Simulation(); // set up window for application


}


public Simulation()


{ // constructor


super();


JMenuBar menu=new JMenuBar();


JMenu file=new JMenu("file");


JMenuItem exit=new JMenuItem("exit");


file.add(exit);


menu.add(file);


setJMenuBar(menu);


//m = new Membrane(1200,45);


pas_de_recherche = Math.PI / 32;


cpt = 0;


setSize(1200,400);


setVisible(true);


/*offscreen = createImage(getSize().width, getSize().height-25);


gb = offscreen.getGraphics();


start(); // method associated with thread


*/
addMouseListener(this); // this refer to frame class




}


public void paint(Graphics g)


{


setBackground(Color.white);


//g.drawImage(offscreen,0,0,this);


}


public void start()


{


runner = new Thread(this); // this refers to frame


runner.start();


}


public void stop()


{


runner.stop();


}


public void run()


{


while(true)


{


try {Thread.sleep(20);} // delay 5 msec between updates


catch (InterruptedException e){}; // would catch the moue click


if(running) calculateMembrane();


}


}


public void mouseClicked(MouseEvent e)


{


// see coordinates


if (running) running = false;


else running = true;


}




public void mouseEntered(MouseEvent e) {}


// move inside frame, runs; otherwise stops


public void mouseExited(MouseEvent e) {}


public void mousePressed(MouseEvent e) {}


public void mouseReleased(MouseEvent e) {}


public void calculateMembrane()


{//on efface l'ecran


gb.clearRect(0,0,getSize().width, getSize().height);


if (cpt == 0)


{//prteine trajectory + update membrane


pos = m.putProteine(pas_de_recherche);


if (pos > 0)


cpt = 1;


}


else


{if (cpt>20)


cpt = 0;


else cpt ++;


}


m.drawMembrane(gb,pos);


Graphics g = getGraphics();


g.drawImage(offscreen,0,0,this);


}


}




JC

1 réponse

Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
je me suis arreté a la methode paint ...
il te faut deja obligatoirement faire un apelle a la methode super (super.paint( g ); ) si tu veu le comportement graphic par defaut ensuite la methode setbackground ne s utilise pas ds paint ...
et pour finir ;o) je te conseille de ne pas surcharger paint de JFrame mais plutot d un JComponent (JPanel) que tu inserre ds ta frame ....

GL

++

GodConan