Hi Community,
Ich versuche je nach status eines Objekts die Linie einzufärben.
Die Linien werden aber nicht richtig überzeichnet, sonder behalten ihre alte farbe, obwohl er die Farbe intern richtig setzt.
Sieht einer das Problem ?
Hier der Code zu GraphicInception:
und der zu Renderer:
Ich versuche je nach status eines Objekts die Linie einzufärben.
Die Linien werden aber nicht richtig überzeichnet, sonder behalten ihre alte farbe, obwohl er die Farbe intern richtig setzt.
Sieht einer das Problem ?
Hier der Code zu GraphicInception:
Java:
package gui.TC.main;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.util.ArrayList;
import main.Inception;
import core.TC.etc.Leitung;
import core.TC.etc.MyWindowListener;
public class GraphicInception extends Frame {
/**
*
*/
MyWindowListener mwl = new MyWindowListener();
int[] coo;
private static final long serialVersionUID = 1L;
ArrayList<Leitung> leitung = Inception.getLeitung();
int nul = 120;
public Graphics gR;
public GraphicInception() {
super("ThunderClap-Map");
this.setSize(500, 200);
this.addWindowListener(mwl);
this.setVisible(true);
this.setAlwaysOnTop(true);
}
@Override
public void paint(Graphics g) {
}
public void renderScreen() throws InterruptedException {
Graphics g = getGraphics();
g.setPaintMode();
for (Leitung i : leitung) {
coo = i.getCoordinaten();
int ixx = coo.length;
for (int ix = 0; ix < ixx; ix++) {
coo[ix] += nul;
}
if (i.isRunning()) {
g.setColor(Color.GREEN);
} else if (!(i.isRunning())) {
g.setColor(Color.RED);
} else {
g.setColor(Color.BLACK);
}
int x1 = coo[0];
int y1 = coo[1];
int x2 = coo[2];
int y2 = coo[3];
g.drawLine(x1, y1, x2, y2);
g.setColor(Color.BLUE);
g.fillRect(nul - 10, nul - 10, 20, 20);
g.setColor(Color.BLACK);
}
}
}
Java:
package gui.TC.main;
public class Renderer extends Thread {
final GraphicInception Gi = new GraphicInception();
@Override
public void run() {
while (true) {
try {
Gi.renderScreen();
Thread.sleep(200);
} catch (InterruptedException ex) {
}
}
}
}