przekazywanie referencji do obiektu

0

Witam,
mam dwie klasy: klasę główną zawierającą metodę main i klasę dziedziczącą po thread. Potrzebuję w tej drugiej klasie wywoływać metody znajdujące się w klasie głównej. Problem w tym że wątek powoływany jest w metodzie main więc nie mogę przekazać referencji do klasy głównej powołując wątek (błąd: non-static variable this cannot be referenced from a static context..
W jaki sposób rozwiązać ten problem?

0

Wnioskując bez kodu, stworzyć 3 (lub więcej) klasę i wyciągnąć metody z klasy głównej, wątek tworzyć w 3 klasie, główna klasa odpowiada tylko za uruchomienie aplikacji, metoda main i na tym koniec.

0

Tylko że ta metoda MUSI być w klasie głównej bo modyfikuje jej atrybuty. Uszczegóławiając: klasa główna rysuje interfejs użytkownika. Ja potrzebuje sposobu aby z poziomu wątku modyfikować atrybuty elementów tego GUI. Wymyśliłem więc że napisze metodę która te atrybuty będzie zmieniać a przy tworzeniu wątku podam tylko referencję do klasy zawierającej tą metodę. Jednak tu pojawia się błąd o którym pisałem wcześniej.

0

a moze chodzi Ci o coś takiego jak SwingWorker?

http://java.sun.com/developer[...]vase/swingworker/#Application

0

OK z tym już sobie poradziłem. Ale mam w tej chwili inny problem, pracuje właśnie nad odpowiednikiem gadu-gadu i nie bardzo wiem jak w kliencie mogę przedstawić listę kontaktów wraz ze statusem każdej osoby z listy. Może masz jakiś pomysł?

0

Hmmy, taki pierwszy pomysł to przechowywać w jakieś kolekcji, może map (klucz - kontakt, wartość -dostępność) kontakty podłączonego klienta, które serwer przy podłączeniu się tego klienta pobiera z jakiegoś źródła danych (i odsyła do klienta), a przy wykorzystaniu wzorca obserwator przekazywać dane odnośnie dostępności innych klientów...

0

ale mi nie chodzi i sposób przetrzymywania daych tylko i icg graficzną reprezentacje.

0

Co do pierwszego problemu, to przekaż referencje w konstruktorze klasy dziedziczącej po Thread.

Co do drugiego, to użyj Swinga i JTable lub JList.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0