- Bemutatkozott a HHKB legújabb, Topre kapcsolókkal szerelt billentyűzete
- Intel Raptor Lake-U Refresh architektúrás mini PC érkezett az MSI színeiben
- A Chrome egyeduralmára tör a ChatGPT böngészője
- Kompakt AIO-val használható rackmount ház jött a Chieftec fémjelzésével
- Már nagyon közel van az AI szerverekbe szánt SOCAMM2 szabvány véglegesítése
- Bambu Lab 3D nyomtatók
- HiFi műszaki szemmel - sztereó hangrendszerek
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Samsung Galaxy Tab S8 és Tab S8+ - méretvariációk egy témára
- Vezetékes FÜLhallgatók
- Epson nyomtatók
- Milyen monitort vegyek?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- GeForce RTX 5060: Ezt kapjuk 150 ezerért
- Milyen széket vegyek?
Ú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?:))
- Autós topik
- Gumi és felni topik
- Bambu Lab 3D nyomtatók
- Windows 11
- Lexus, Toyota topik
- HiFi műszaki szemmel - sztereó hangrendszerek
- Kerékpárosok, bringások ide!
- Milyen routert?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Samsung Galaxy Tab S8 és Tab S8+ - méretvariációk egy témára
- További aktív témák...
- Törött, Hibás iPhone felvásárlás!!
- AKCIÓ!!! RITKASÁG! Microsoft Surface Pro 11 Qualcomm Snapdragon X Elite 16GB 512GB OLED 120Hz Gar!
- Hp, Dell gyári 65W USB-C Type-C töltők, tápegységek
- Bomba ár! Lenovo ThinkPad L480 - i5-8GEN I 8GB I 256GB SSD I 14" FHD I HDMI I Cam I W11 I Gari!
- Honor Magic7 Lite 256GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest