Hi leute ich hab da ein problem mit der repaint() Methode...es wird aus irgendeinem Grund nicht ausgeführt und ich weis nicht warum. Ich hoffe jemand kann mir helfen. Ich sitze da schon zwei tage drann und weis nicht woran es liegt.
bei dem Programm handelt es sich um eine Ampelsteuerung. Ich stell die klassen betreit in denn das ablaufen sollte. die eine beinhaltet eine Threatklasse wo die repaint ausgeführt werden soll. und die paint klasse.
Ich hoffe jemand sieht meinen Fehler.
Klasse Ablauf wo die repaint() aufgefrufen wird.
und die klasse Amp_draw_Yellow wo die paint()-Methode definiert ist.
MfG mildi[/code]
bei dem Programm handelt es sich um eine Ampelsteuerung. Ich stell die klassen betreit in denn das ablaufen sollte. die eine beinhaltet eine Threatklasse wo die repaint ausgeführt werden soll. und die paint klasse.
Ich hoffe jemand sieht meinen Fehler.
Klasse Ablauf wo die repaint() aufgefrufen wird.
Code:
/*
* @(#)thread.java
*
*
* @author
* @version 1.00 2008/5/15
*/
package src;
import java.awt.*;
public class Ablauf extends Canvas implements Runnable
{
/**
*
*/
private static final long serialVersionUID = 1L;
Thread thread;
boolean blink;
boolean stopthread = false;
public String Betriebsart;
Amp_draw_RED red = new Amp_draw_RED();
Amp_draw_YELLOW yel = new Amp_draw_YELLOW();
Amp_draw_GREEN green = new Amp_draw_GREEN();
public Ablauf ()
{
blink = false;
thread = null;
}
public boolean retblk()
{
return blink;
}
public void setBetrArt(String art)
{
Betriebsart = art;
System.out.println(Betriebsart);
}
public String Bt()
{
return Betriebsart;
}
public void start(String art)
{
Betriebsart = art;
if (thread == null)
{
thread = new Thread(this, "hasu");
thread.start();
}
}
public void run()
{
if(Betriebsart == "Reset")
{
while (thread != null)
{
if (stopthread)
return;
yel.setBetreiabsart(Betriebsart);
yel.repaint(); // ruft paint() auf
System.out.print("run()."+Betriebsart);
try
{
Thread.sleep(1000); // 1s warten
}
catch (InterruptedException e) {}
}
}
}
public void stop() // wird autom. erst nach Programmende aufgerufen
{
stopthread = true;
thread = null;
}
}
und die klasse Amp_draw_Yellow wo die paint()-Methode definiert ist.
Code:
/**
* @(#)Amp_draw_YELLOW.java
*
*
* @author
* @version 1.00 2008/5/13
*/
package src;
import java.awt.*;
class Amp_draw_YELLOW extends Canvas
{
/**
*
*/
private static final long serialVersionUID = 1L;
String Betriebsart = "Start";
Ablauf thr1;
boolean blink;
boolean bli;
public void paint (Graphics g)
{
System.out.println("paint");
g.setColor(Color.BLACK);
g.fillRect(0,0,100,100);
g.setColor(Color.GRAY);
if(Betriebsart=="Start")
{
System.out.println("paint.start");
g.setColor(Color.GRAY);
}
if(Betriebsart=="Reset")
{
System.out.println("paint.reset");
thr1 = new Ablauf();
blink = !thr1.retblk();
System.out.print(blink);
if (blink)
{
g.setColor (Color.GRAY);
}
else
{
g.setColor (Color.YELLOW);
}
}
g.fillArc (0,0,100,100,0,360);
}
public void setBetreiabsart(String art)
{
Betriebsart = art;
System.out.println(Betriebsart+" test ");
}
}
MfG mildi[/code]