Hallo,
ich habe ein Problem mit der Darstellung einer Ampel. Vermutlich sind es Noob-Probleme, ich komme aber einfach nicht weiter. Nach stundenlangem Lesen von sowohl Javainsel und Teia-Lehrbuch als auch dem Stöbern in zig Foren und Tutorials, bin ich nun vollkommen verwirrt. ???:L
Ich versuche eine Ampel darzustellen... Datenbankzugriff, Auswertung, alles funktioniert(getestet mit println()s... Aber die Darstellung haut einfach nicht hin....
Ich habe eine Klasse Ampel... hier funktionert das mit dem Container nicht, kann mir jemand sagen, wieso?
Die Methode paintComponent wird gar nicht aufgerufen soweit ich das analysieren konnte. Wieso, wiederum ka....
Vielen Dank für eure Hilfe im Voraus
ich habe ein Problem mit der Darstellung einer Ampel. Vermutlich sind es Noob-Probleme, ich komme aber einfach nicht weiter. Nach stundenlangem Lesen von sowohl Javainsel und Teia-Lehrbuch als auch dem Stöbern in zig Foren und Tutorials, bin ich nun vollkommen verwirrt. ???:L
Ich versuche eine Ampel darzustellen... Datenbankzugriff, Auswertung, alles funktioniert(getestet mit println()s... Aber die Darstellung haut einfach nicht hin....
Ich habe eine Klasse Ampel... hier funktionert das mit dem Container nicht, kann mir jemand sagen, wieso?
Java:
public class Ampel extends JFrame {
public enum Ampelzustand {ROT, GRÜN, STÖRUNG};
Ampelzustand z;
Container con;
Ampel() {
super("Warenkorb - Füllstandsanzeige");
this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
con = getContentPane();
this.con = con;
this.setSize(1680,1050);
this.setVisible(true);
this.setResizable(false);
con.setBackground(Color.BLACK);
}
public void setZustand(String zustand) {
if (Ampelzustand.GRÜN.toString().equals(zustand)) {
System.out.println("GRÜN");
Ampellicht lampeOben = new Ampellicht(0, 0, 400, 400, Color.BLACK);
getContentPane().add(lampeOben);
//con.add(lampeOben);
Ampellicht lampeUnten = new Ampellicht(0, 450, 400, 400, Color.GREEN);
getContentPane().add(lampeUnten);
//con.add(lampeUnten);
}
else if (Ampelzustand.ROT.toString().equals(zustand)) {
System.out.println("ROT");
Ampellicht lampeOben = new Ampellicht(0, 0, 400, 400, Color.RED);
con.add(lampeOben);
Ampellicht lampeUnten = new Ampellicht(0, 450, 400, 400, Color.BLACK);
con.add(lampeUnten);
}
else {
System.out.println("Gelb blinkend");
try {
Ampellicht lampeOben = new Ampellicht(0, 0, 400, 400, Color.BLACK);
con.add(lampeOben);
Ampellicht lampeUnten = new Ampellicht(0, 450, 400, 400, Color.YELLOW);
con.add(lampeUnten);
Thread.sleep(1000);
/*
Ampellicht lampeOben = new Ampellicht(0, 0, 400, 400, Color.YELLOW);
con.add(lampeOben);
Ampellicht lampeUnten = new Ampellicht(0, 450, 400, 400, Color.BLACK);
con.add(lampeUnten);
*/
}
catch (Exception e) {
e.printStackTrace();
}
}
}
}
Java:
public class Ampellicht extends JPanel {
int x;
int y;
int width;
int height;
Color color;
Ampellicht(int x, int y, int width, int height, Color color) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
this.color = color;
}
protected void paintComponent(Graphics g) {
super.paintComponents(g);
g.setColor(color);
g.fillOval(x, y, width, height);
}
}
Die Methode paintComponent wird gar nicht aufgerufen soweit ich das analysieren konnte. Wieso, wiederum ka....
Vielen Dank für eure Hilfe im Voraus