[Java Unix] non-static method cannot be referenced from a static ...

non-static method cannot be referenced from a static ... [Java Unix] - Java - Programmation

Marsh Posté le 13-05-2002 à 14:13:40    

J'ai l'erreur "non-static method repaint() cannot be referenced from a static context" sur la ligne testgraph.repaint();
Je vous accorde que mon prog est zarb mais je suis en train de faire des petits tests... Alors je fais comment moi ?
 
import java.net.*;
import java.io.*;
import java.lang.Thread;
 
import java.awt.*;
import java.awt.Graphics;
 
public class testgraph extends java.applet.Applet
{
  static public  int nb_msg=0;
  static public  int x1=0;
  static public  int y1=0;
  static public  int x2=0;
  static public  int y2=0;
 
 
  Button a = new Button("ok" );
  FlowLayout lm = new FlowLayout();
 
  public testgraph()
  {
     
  }
 
  public void init()
  {
    setLayout(lm);
    add(a);
  }
 
  public void paint(Graphics g)
  {
    g.drawLine(x1,y1,x2,y2);
  }
 
  public void start()
  {
    try
    {
      System.out.println("coucou" );
      GraphTimer gt = new GraphTimer(2000);
      gt.start();
    }
    catch (Exception e)
    {
 
    }
  }
 
  public boolean action(Event evt, Object arg)
  {
    if (evt.target instanceof Button)
    {
      String labl = (String)arg;
      if (labl.equals("ok" ))
      {
        nb_msg++;
      }
    }
    return true;
  }
 
  public void update()
  {
    repaint();
  }
 
}
 
class GraphTimer extends Thread
{
  static public int tsleep;
 
  public GraphTimer(int tsleep)
  {
    this.tsleep = tsleep;  
  }
 
  public void run()
  {
    try
    {
      while (true)
      {
        sleep(tsleep);
        System.out.println(testgraph.nb_msg);
        testgraph.nb_msg=0;
        setp(0,0,50,50);
        testgraph.repaint();
      }
    }
    catch (Exception e)
    {
 
    }
  }
 
  public void setp(int x1, int y1, int x2, int y2)
  {
    testgraph.x1=x1;
    testgraph.y1=y1;
    testgraph.x2=x2;
    testgraph.y2=y2;
  }
}

Reply

Marsh Posté le 13-05-2002 à 14:13:40   

Reply

Marsh Posté le 13-05-2002 à 14:16:04    

au secours !!!!
 
les méthodes statiques c'est utilisé le moins possible en OO. Ce qui tu as fait veut dire que tout les objets Testgraph au sein d'une meme JVM auraont tous le meme nombre de mssage le meme x1, x2, etc ...
 
repaint est une méthode d'instance donc tu dois créer une instance et appliquer la méthode dessus !


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 13-05-2002 à 14:19:27    

DarkLord a écrit a écrit :

au secours !!!!




ouep ... pas bô tout ca ...

Reply

Marsh Posté le 13-05-2002 à 14:22:32    

DarkLord a écrit a écrit :

au secours !!!!
 
les méthodes statiques c'est utilisé le moins possible en OO. Ce qui tu as fait veut dire que tout les objets Testgraph au sein d'une meme JVM auraont tous le meme nombre de mssage le meme x1, x2, etc ...
 
repaint est une méthode d'instance donc tu dois créer une instance et appliquer la méthode dessus !  




 
 :heink:  c grave docteur ?  :heink:  
Comment je fais pour créer cette instance ?
Je sais, c ma journée...

Reply

Marsh Posté le 13-05-2002 à 14:30:50    

proxi a écrit a écrit :

 
 
 :heink:  c grave docteur ?  :heink:  
Comment je fais pour créer cette instance ?
Je sais, c ma journée...  




 
Je ne suis pas persuadé que j'ai envie de t'expliquer cela. Va faire un tour sur le java tutorial (http://java.sun.com). Ca prendrait bcp trop de temps et c'est déjà expliqué très clairement ailleurs.
 
Déjà tu utilises static pour tes membres de classes et ca n'a aucun sens ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 13-05-2002 à 14:42:23    

DarkLord a écrit a écrit :

 
 
Je ne suis pas persuadé que j'ai envie de t'expliquer cela. Va faire un tour sur le java tutorial (http://java.sun.com). Ca prendrait bcp trop de temps et c'est déjà expliqué très clairement ailleurs.
 
Déjà tu utilises static pour tes membres de classes et ca n'a aucun sens ...  




 
ok j'ai pigé, il est vrai que c très moche ce que je viens de faire. J'ai trouvé un exemple propore pour faire ce que j'essaye de faire. c lcait :pt1cable: thx @+

Reply

Marsh Posté le 13-05-2002 à 14:43:28    

mais tu devrais quand même apprendre le java avant de te lancer dans le dev. (cf ma signature)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed