- Apple iPhone 13 Pro Max - őnagysága
- Google Pixel topik
- Megérkezett a Samsung Galaxy A37 és Galaxy A57
- Szívós, szép és kitartó az új OnePlus óra
- Xiaomi 14 Ultra - Leica hercegnő
- Mobil flották
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Xiaomi 15T Pro - a téma nincs lezárva
- Azonnali mobilos kérdések órája
- Samsung Galaxy Watch8 - Classic - Ultra 2025
Ú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?:))
- Apple iPhone 13 Pro Max - őnagysága
- gban: Ingyen kellene, de tegnapra
- TCL LCD és LED TV-k
- GL.iNet Flint 2 (GL-MT6000) router
- AliExpress tapasztalatok
- Apple MacBook
- sziku69: Fűzzük össze a szavakat :)
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- Path of Exile (ARPG)
- Google Pixel topik
- További aktív témák...
- BESZÁMÍTÁS! Sony PlayStation 4 Slim 1TB HDD játékkonzol garanciával hibátlan működéssel
- Edox Grand Ocean Automatic Chronograph, dobozában
- BESZÁMÍTÁS! Microsoft XBOX Series S 512GB játékkonzol garanciával hibátlan működéssel
- BESZÁMÍTÁS! Asrock Z790 i9 13900K 64GB DDR5 1TB SSD RTX4080 16GB Aerocool P500B Digi ARGB ADATA 850W
- BESZÁMÍTÁS! Asus Z690 i5 13600K 32GB DDR4 1TB SSD RX 6800 XT 16GB Aerocool P500B Digi ARGB 850W
- TELJES KÖRŰ IT BESZERZÉS
- Apple iPhone 13 256GB,Használt,Dobozaval,12 hónap garanciával
- Honor X8 128GB, Kártyafüggetlen, 1 Év Garanciával
- GYÖNYÖRŰ iPhone 13 Mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS4066, 94% AKKSI
- Gaming PC! Ryzen 5700X / RTX 3070 / B550 / 32GB 2666Mhz / 512GB NVMe / 850w Gold! BeszámítOK
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



