non-static method cannot be referenced from a static ... [Java Unix] - Java - Programmation
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 !
Marsh Posté le 13-05-2002 à 14:19:27
DarkLord a écrit a écrit : au secours !!!! |
ouep ... pas bô tout ca ...
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 ! |
c grave docteur ?
Comment je fais pour créer cette instance ?
Je sais, c ma journée...
Marsh Posté le 13-05-2002 à 14:30:50
proxi a écrit a écrit : c grave docteur ? 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 ...
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 thx @+
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)
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;
}
}