Wpis z mikrobloga

#java #programowanie
http://pastebin.com/RTNK22Vr
Fragment kodu odpowiedzialny za przyjmowanie wiadomości od klienta przez serwer i wyświetlająca ją na GUI.
Problem w tym, że każda następna odebrana wiadomość nadpisuje się na poprzednią. Dzieje się to 12 linijce.
Chciałbym, aby każda wiadomość była wyświetlana pod poprzednią.

Nie proszę o podanie gotowego rozwiazania, ale o wskazówkę, nakierowanie mnie na sposób rozwiazania.

Może coś z ArrayList?

Dzięki z góry Mircy( ͡° ͜ʖ ͡°)
  • 15
@kufelmleka: Przemyśl swoje zachowanie! Uruchamiasz obsługę klienta w osobnym wątku i z tego wątku aktualizujesz GUI? Czy to oznacza, że GUI może być aktualizowane przez wiele wątków w tym samym czasie? Potępiam takie rozwiązanie ;)
@kufelmleka:
- napisałeś nazwę klasy z małej litery :<
- niektóre zmienne są nazwane po polsku inne po angielsku :<
- nazwałeś klasę sendTheMessage z małej litery
- co tu się w ogóle z tymi wątkami odwala? dlaczego wysyłasz wiadomość w osobnym wątku?
- nie jestem pewien czy robienie System.exit(0) a potem pisanie na stderr to najlepsza praktyka

Każdy minus to jeden zabity kotek. Aktualizacja GUI z wielu threadów to zabicie
@kufelmleka:
- Swing, którego używasz do GUI ma SwingUtilities.invokeLater(Runnable runnable). To jest JEDYNY dobry sposób na aktualizowanie GUI z wielu wątków. Jak to zawołasz to kod z runnable zostanie wywołany w wątku odpowiedzialnym za GUI.
- JTextArea, którego używasz do displayText ma metodę append(String). Użyj jej zamiast setText i nowa wiadomość nie będzie kasowała poprzednich tylko dopisze się na końcu.
- Robienie niestatycznych klas wewnętrznych jest w 99%