while(mousePressed)
jeg prøver at lave en kasse der skal bevæge sig, mens man holder knappen nede, det har jeg lavet på følgene måde:import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class hovedVindue extends Applet
{
public Point center = new Point();
public int fart = 2;
public boolean sluppet = true;
public boolean igang = true;
public Thread slip = new Thread(new lytter());
public hovedVindue()
{
slip.start();
while(igang)
{
while(!sluppet)
{
try
{
Thread.sleep(100);
} catch (Exception e)
{}
repaint();
}
try
{
Thread.sleep(100);
} catch (Exception e)
{}
}
}
public void paint(Graphics g)
{
center.x += fart;
g.drawRect(center.x-5,10,10,10);
}
}
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class lytter extends hovedVindue implements Runnable
{
public lytter()
{}
public void send(boolean klik)
{
sluppet = klik;
}
public void run()
{
muselytter lyt = new muselytter();
lyt.lytt = this;
this.addMouseListener(lyt);
}
}
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class muselytter implements MouseListener
{
public lytter lytt;
public void mousePressed(MouseEvent me)
{
lytt.send(false);
}
public void mouseReleased(MouseEvent me)
{
lytt.send(true);
}
public void mouseClicked(MouseEvent me)
{}
public void mouseEntered(MouseEvent me)
{}
public void mouseExited(MouseEvent me)
{}
}
det kan fint kompileres, men når jeg tester det, siger den:
java.lang.StackOverflowError
at java.awt.Component.<init>(Unknown Source)
at java.awt.Container.<init>(Unknown Source)
at java.awt.Panel.<init>(Unknown Source)
at java.awt.Panel.<init>(Unknown Source)
at java.applet.Applet.<init>(Unknown Source)
at hovedVindue.<init>(hovedVindue.java:14)
at lytter.<init>(lytter.java:8)
at hovedVindue.<init>(hovedVindue.java:11)
at lytter.<init>(lytter.java:8)
at hovedVindue.<init>(hovedVindue.java:11)
at lytter.<init>(lytter.java:8)
at hovedVindue.<init>(hovedVindue.java:11)
at lytter.<init>(lytter.java:8)
osv.......
