Hi,
ich habe ein Problem mit dem Ändern von Icons in einem bestimmten JButton.
In einer Klasse A füge ich dem Panel 4 JButtons hinzu. Jeder JButton bekommt ein unterschiedliches Icon.
Wenn ich das Programm ausführe, dann sehe ich die 4 JButtons mit dem jeweilgen Icon. So weit, so gut.
Nun bin ich der Klasse B. Beim Programmstart kann ich auf einen Button klicken (Starte Thread). So, jetzt soll jede Sekunde ein bestimmtes JTextField ausgelesen werden und dieser Wert wird der Klasse A übergeben. Entweder ist dieser Wert true oder false.
Ich rufe jetzt in Klasse B eine Funktion in Klasse A und gebe dieser Funktion den Inhalt von dem JTextField mit.
Funktion in Klasse A:
public void setButtonA1(String wert)
{
System.out.println("Ich wurde aufgerufen mit dem Wert: " +wert);
if(wert.equals("true"))
{
a1.setVisible(true);
b1.setVisible(false);
}
else if(wert.equals("false"))
{
a1.setVisible(false);
b1.setVisible(true);
}
}
Bei dem System.out.() erhalte ich auch den korrekten String, also entweder true oder false.
Aber seltsamer Weise interessiert es das Programm überhaupt nicht, was in der if-else-Anweisung steht.
Das Gleiche habe ich auch mit JLabels gemacht. Hier wird auch jede Sekunde ein anderer Text für ein bestimmtes JLabel generiert und diesen Text, also das aktualisierte JLabel sehe ich sofort.
Das habe ich in dem Thread so gemacht: JLabel.setText(string_vom_textfield);
Nun die Frage: Warum klappt das mit den JButtons nicht? Ich möchte, das nur ein Button angezeigt wird. Aber irgendwie funktioniert das setVisible() nicht.
Weiß jemand Rat?
Gruß,
Thorsten F.