Dobry wieczór. Postanowiłem uczyć się pisania w JavaFX. Chciałbym utworzyć nowy wątek (lub kilka wątków), w którym otwarte zostanie nowe okno. Szukałem odpowiedzi w internecie, ale nie znalazłem nic konkretnego, jedynie to, że nie mogę utworzyć okna poprzez metodę run() (a przynajmniej tak to zrozumiałem). Stąd też moja prośba o pomoc w znalezieniu rozwiązania.
- Rejestracja:ponad 6 lat
- Ostatnio:ponad 4 lata
- Postów:54
Pracuję nad prostym komunikatorem. Dla każdej rozmowy chcę mieć oddzielne okno. Stąd wymyśliłem, że każde nowe okno będzie obsługiwane przez nowy wątek (jeden wątek, jedna rozmowa). W ten sposób uzyskałbym uporządkowanie. Oddzielny wątek decyzyjny (jeden dla wszystkich okien) przekazywałby wiadomość do odpowiedniego wątku.
- Rejestracja:ponad 6 lat
- Ostatnio:ponad 4 lata
- Postów:54
Rozumiem. W takim razie muszę tworzyć nowe okna wewnątrz main()
i w jakiś sposób przekazywać tam treści moich wiadomości. Prawdopodobnie będę musiał jakoś reprezentować te okna. Klasa wewnętrzna chyba nie jest najlepszym pomysłem.
- Rejestracja:ponad 6 lat
- Ostatnio:dzień
- Postów:296
Tylko pytanie po co Ci wątki, chcesz ssać coś w tle, wykonywać jakieś obliczenie itd. Do prostych zadań masz gotowce, które są bezpieczne w UI, tu możesz poczytać co nieco.
- Rejestracja:ponad 6 lat
- Ostatnio:ponad 4 lata
- Postów:54
Jeszcze przyszedł mi do głowy pomysł, by w liście trzymać referencje do pół tekstowych wszystkich okien.
- Rejestracja:ponad 6 lat
- Ostatnio:dzień
- Postów:296
Poczytaj dokumentację u źródła, rozdział A Task Which Modifies The Scene Graph
- Rejestracja:ponad 6 lat
- Ostatnio:ponad 4 lata
- Postów:54
@cs: Wybacz, ale niezbyt dobrze rozumiem ten przykład. Wrzucenie całych scen do grupy raczej nie wchodzi w grę, a jeśli wrzucę tam tylko pola tekstowe, to czy jakakolwiek zmiana w jednym z nich nie spowoduje zmiany także w polach w innych oknach?
- Rejestracja:ponad 6 lat
- Ostatnio:ponad 4 lata
- Postów:54
@cs: Już rozumiem. Dziękuję :)
Jeszcze mam takie pytanie: co sądzisz o moim pomyśle z trzymaniem referencji do pól tekstowych w liście? Oraz czy jest sens tworzyć listę wiadomości wychodzących (zastanawiam się, czy serwer zdąży odebrać moja wiadomość, zanim wyślę kolejną)?
- Rejestracja:ponad 6 lat
- Ostatnio:ponad 4 lata
- Postów:54
@cs: Jeśli dobrze rozumiem, rodzic to okno, z którego przyciskiem wywołuję nowe okno (lub okna - wszystko odbywa się więc w funkcji obsługującej przycisk). W moim przypadku otwieram nowe okno (lub okna) w kontrolerze, natomiast do pól odwołuję się z wątku innej klasy. Mógłbym prosić o jakąś podpowiedź, w jaki sposób przeiterować po tych elementach?
Wybacz zasypywanie pytaniami, ale staram się jak najlepiej zrozumieć temat.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.