- Magga: PLEX: multimédia az egész lakásban
- Elektromos rásegítésű kerékpárok
- sziku69: Fűzzük össze a szavakat :)
- LordAthis: AI (és másra is használt) Cluster építése - Második Cikk
- Luck Dragon: Asszociációs játék. :)
- sh4d0w: Netflix? Ugyan, VW előfizetés!
- sziku69: Szólánc.
- WhrlpoolMind: Búcsú a HD3870-től
- gban: Ingyen kellene, de tegnapra
- Geri Bátyó: Megint tahó voltam – SZEMÉLYISÉGFEJLŐDÉS
Ú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
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Milyen videókártyát?
- Yettel topik
- 5.1, 7.1 és gamer fejhallgatók
- Sweet.tv - internetes TV
- Synology NAS
- Magga: PLEX: multimédia az egész lakásban
- Elektromos rásegítésű kerékpárok
- Először égett le egy újságnál a GeForce RTX 5090
- AMD Navi Radeon™ RX 6xxx sorozat
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- További aktív témák...
- IPhone 11 64GB gyári független purple új akku megkímélt
- HPE ProLiant ML350 Gen9 Hot Plug 8SFF Rack Server
- Apple Watch Series 7 41mm
- Eladó 26 db Apple Watch óraszíj (45 mm-hez, kifogástalan állapotban)
- INGYEN POSTA - ÚJ GAMER PC V11 - i5-12400F - RTX 3060 12GB - 16GB RAM - 1TB SSD -www.olcsogamerpc.hu
- BESZÁMÍTÁS! MSI B450 R5 5500 16GB DDR4 512GB SSD 1TB HDD GTX 1060 6GB Zalman N5 MF ADATA 600W
- DELL Latitude 7340 i7-1365U 16GB 512GB 13.3" FHD+ TouchScren 1 év garancia
- Steam, EA, Ubisoft és GoG játékkulcsok, illetve Game Pass kedvező áron, egyenesen a kiadóktól!
- BESZÁMÍTÁS! 1TB Samsung 980 Pro NVMe SSD meghajtó garanciával hibátlan működéssel
- BESZÁMÍTÁS! ASUS TUF A620M R5 7600X 32GB DDR5 1TB SSD RX 6700 XT 12GB ZALMAN I3 NEO A-Data 750W
Állásajánlatok
Cég: FOTC
Város: Budapest