- Párizsi ősz, új Huawei órák
- Fotók, videók mobillal
- Samsung Galaxy S25 - végre van kicsi!
- Poco F7 Pro - jó, de az amatőr sem rossz
- Samsung Galaxy Z Fold5 - toldozás-foldozás
- Hitelesítették az S26 Ultra csalódást keltő telepét
- Xiaomi 15 - kicsi telefon nagy energiával
- Xiaomi Smart Band 10 - a hetedik napon megpihen
- Samsung Galaxy S22 és S22+ - a kis vagány meg a bátyja
- Megjött a jubileumi Pixel széria
Új hozzászólás Aktív témák
-
Karma
félisten
Huh, erős kód. Meg egy kicsit erjedt is. Ha már egyszer a progressbar értékét is másik szálból közvetlenül babrálod a setValue-val, miért nem hívod meg a dialógus setVisible-jét amikor vége?
Félreértéseket elkerülendő, ez így nagyon-nagyon nem jó megoldás, de legalább begipszelnéd a lyukat
A probléma ugyanis az, hogy a Swing (meg úgy egyébként a legtöbb UI framework) nem szereti azt, ha a UI szálon kívül (itt event dispatcher threadnek hívják) bármit módosítasz. Jobb helyeken egy hatalmas exceptiont kapsz a nyakadba, itt úgy tűnik nem.
A dialógus elindítása még rendben van, a másik szálból nem szabadna közvetlenül hívogatni a setValue-t.
Fontos megjegyezni, mert ahogy látom itt félreértés van: az új szál indításával a vezérlés két, párhuzamosan futó részre szakadt. Ez a mondatod: A kérdés, ha végzett a run() metódus, hogyan tudom ezt a szálat leállítani és visszaadni a másiknak a vezérlést." értelmetlen, az indító dialógusos kód nem vesztette el a szálát, egyszerűen visszatért az eseményekre várakozó állapotba. Ezt végzi is, csak a modális dialógus miatt nem törődik máshova irányuló kattintásokkal és billentyűleütésekkel.
Magára a problémára visszatérve, egy kicsit szerteágazik a megoldás, mert olyan alap dolgokkal kellene tisztában lenned, mint a UI (dialógus, progressbar helyzete) elválasztása az üzleti logikától (fájlmásolás száz bájtonként). Kéne egy rendes Listener interfész, amit a másoló hívogat (ezen keresztül jelentve a százalékos állást, számként), és a programGUI-d implementálja.
Ehhez az implementációhoz meg a SwingUtilities.InvokeLater-t kéne használnod, hogy a dispatcher szálon fusson le a tényleges progress bar frissítés, meg a dialógus elrejtése.
Így nem függene a másolód attól, hogy a UI-on milyen komponensek vannak és hogy hívják őket, csak a dolgát végezné
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Xbox Series X|S
- Anglia - élmények, tapasztalatok
- Viccrovat
- Milyen billentyűzetet vegyek?
- Kertészet, mezőgazdaság topik
- Energiaital topic
- Android játékok topikja
- Megjöttek a be quiet! Pure Loop 3 sorozatú kompakt AIO-i
- Goddess of Victory:Nikke
- További aktív témák...
- iKing.Hu - Nubia Z70 Ultra 5G Black Használt, karcmentes állapotban 12 GB RAM / 256 GB tárhely
- Honor Magic5 Lite 128GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy S21 Ultra / 12GB RAM 256GB / Gyárifüggetlen / 12Hó Garancia
- Honor X6 64GB, Kártyafüggetlen, 1 Év Garanciával
- HIBÁTLAN iPhone 15 Pro 128GB Blue Titanium -1 ÉV GARANCIA -Kártyafüggetlen, MS3225
Állásajánlatok
Cég: FOTC
Város: Budapest