so versuche ich eine Anwendung einzurichten, wo ich mehrere Panels in einem Jframe haben. Nehmen wir an, drei von ihnen dienen lediglich der Anzeige, und einer davon dient der Kontrolle. Ich benutze ein BorderLayout, aber ich denke nicht, dass das Layout die Dinge hier wirklich beeinflussen sollte.Repainting mehrere JPanel von einem einzigen "Control" -Panel
mein Problem ist dies: Ich möchte die Neuanstrich der drei Anzeigefelder unter der Kontrolle der Tasten in der Systemsteuerung, und ich möchte sie alle synchron ausführen, wenn eine Taste auf dem Bedienfeld gedrückt wird. dies zu tun, habe ich diese kleine Methode auf:
public void update(){
while(ButtonIsOn){
a.repaint();
b.repaint()
c.repaint();
System.out.println("a,b, and c should have repainted");
}
}
wobei a, b und c sind alle Anzeigetafeln und ich möchte, a, b und c, um alle ständig neu streichen, bis ich die Taste erneut drücken. Das Problem ist, wenn ich die Schleife ausfühle, druckt die Nachricht in einer Endlosschleife, aber keiner der Panels tut irgendetwas, dh, keiner von ihnen streicht neu.
Ich habe auf dem Event-Versand-Thread lesen und Multithreading schwingen, aber nichts, was ich bis jetzt gefunden habe, hat wirklich mein Problem gelöst. Könnte jemand mir den Kern dessen geben, was ich hier falsch mache, oder noch besser, ein Beispielcode, der die Situation behandelt, die ich beschreibe? Danke ...
* * Für eine bessere Hilfe früher, bucht einen [SSCCE] (http ".. einiger Beispielcode, der die Situation behandelt i beschreiben bin?": // sscce. org /). –
Bitte lernen Sie Java-Namenskonventionen und halten Sie sich daran. – kleopatra
Was genau ist das Problem (abgesehen von Ihrer Endlosschleife, die dadurch verursacht wird, dass der Boolean, der die while steuert, nicht zurückgesetzt wird)? Wie genau macht das _none der Panels irgendetwas, dh keiner von ihnen repaint_ manifest? – kleopatra