Hello again ,
einigen von euch wird der folgende Quellcode vielleicht bekannt vorkommen, wenn auch das Problem jetzt ein anderes ist.
Mein Programm funktioniert eigentlich wunderbar, bis auf die Kleinigkeit, dass die Aktualisierung des JLabels "füllstandText" nicht funktioniert... Das sollte eigentlich über die am Schluss des Codes befindliche Methode setFüllstand funktionieren. Die Methode wird auch von der anderen Klasse aufgerufen, das habe ich im Debug-Mode überprüft. Auch
wird aufgerufen, soweit ich das überprüfen konnte. Leider wird aber der Text nicht aktualisiert....
Ich bedanke mich im Voraus
Gruß
Euer Captain
einigen von euch wird der folgende Quellcode vielleicht bekannt vorkommen, wenn auch das Problem jetzt ein anderes ist.
Mein Programm funktioniert eigentlich wunderbar, bis auf die Kleinigkeit, dass die Aktualisierung des JLabels "füllstandText" nicht funktioniert... Das sollte eigentlich über die am Schluss des Codes befindliche Methode setFüllstand funktionieren. Die Methode wird auch von der anderen Klasse aufgerufen, das habe ich im Debug-Mode überprüft. Auch
Code:
füllstandText.setText(füllstandString);
Java:
public class Ampel extends JFrame {
public enum Ampelzustand {ROT, GRÜN, STÖRUNG};
Ampelzustand z;
Ampellicht lampeOben;
Ampellicht lampeUnten;
int füllstand;
String füllstandString;
JPanel centerPanel = new JPanel();
JLabel füllstandText = new JLabel();
public Ampel() {
super("Warenkorb - Füllstandsanzeige");
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
setSize(1680,1050);
setVisible(true);
setResizable(false);
getContentPane().setBackground(Color.BLACK);
Container cp = getContentPane();
cp.setLayout(new BorderLayout());
JPanel ampellichter = new JPanel();
JPanel topPanel = new JPanel();
JLabel topPanelText = new JLabel("Warenkorb - Füllstandsanzeige");
topPanel.add(topPanelText);
topPanel.setBackground(Color.WHITE);
topPanel.setPreferredSize(new Dimension(1680, 50));
JPanel bottomPanel = new JPanel();
JLabel bottomPanelText = new JLabel("Bei technischen Problemen bitte bei TD-40 melden!");
bottomPanel.add(bottomPanelText);
bottomPanel.setBackground(Color.WHITE);
bottomPanel.setPreferredSize(new Dimension(1680, 50));
JPanel centerPanel = new JPanel();
this.centerPanel = centerPanel;
centerPanel.setLayout(new BoxLayout(centerPanel, BoxLayout.Y_AXIS));
JLabel centerPanelText = new JLabel("Aktueller Füllstand:");
centerPanel.add(centerPanelText);
System.out.println("Füllstandcheck: " + füllstand);
füllstandString = String.valueOf(füllstand);
System.out.println("Füllstand again: " + füllstandString);
JLabel füllstandText = new JLabel(füllstandString);
this.füllstandText = füllstandText;
centerPanel.add(centerPanelText);
centerPanel.add(füllstandText);
ampellichter.setLayout(new BoxLayout(ampellichter, BoxLayout.Y_AXIS));
Ampellicht lampeOben = new Ampellicht(45, 25, 400, 400, Color.BLACK);
this.lampeOben = lampeOben;
ampellichter.add(lampeOben, BorderLayout.CENTER);
System.out.println("Lampe oben erzeugt!");
Ampellicht lampeUnten = new Ampellicht(45, 0, 400, 400, Color.BLACK);
this.lampeUnten = lampeUnten;
ampellichter.add(lampeUnten, BorderLayout.CENTER);
System.out.println("Lampe unten erzeugt");
ampellichter.setSize(500, 1000);
ampellichter.setPreferredSize(new Dimension(500, 1000));
cp.add(ampellichter, BorderLayout.WEST);
cp.add(topPanel, BorderLayout.NORTH);
cp.add(bottomPanel, BorderLayout.SOUTH);
cp.add(centerPanel, BorderLayout.CENTER);
}
public void setZustand(String zustand) {
if (Ampelzustand.GRÜN.toString().equals(zustand)) {
System.out.println("GRÜN");
lampeOben.setColor(Color.BLACK);
lampeOben.repaint();
lampeUnten.setColor(Color.GREEN);
lampeUnten.repaint();
}
else if (Ampelzustand.ROT.toString().equals(zustand)) {
System.out.println("ROT");
lampeOben.setColor(Color.RED);
lampeOben.repaint();
lampeUnten.setColor(Color.BLACK);
lampeUnten.repaint();
}
else {
System.out.println("Gelb blinkend");
try {
/*
Ampellicht lampeOben = new Ampellicht(0, 0, 400, 400, Color.BLACK);
add(lampeOben);
Ampellicht lampeUnten = new Ampellicht(0, 450, 400, 400, Color.YELLOW);
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();
}
}
}
public void setFüllstand(int f) {
this.füllstand = f;
füllstandText.setText(füllstandString);
validate();
repaint();
/*
System.out.println("Füllstand: " + füllstand);
füllstandString = String.valueOf(füllstand);
System.out.println("Füllstand again: " + füllstandString);
JLabel füllstandText = new JLabel(füllstandString);
centerPanel.add(füllstandText);
*/
}
}
Ich bedanke mich im Voraus
Gruß
Euer Captain