Hirdetés
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- sziku69: Fűzzük össze a szavakat :)
- aquark: Zsebszámológépek
- balojazz: Szódakészítés üzembiztosan és olcsón! Figyelem, csak hardcore szódázóknak!
- gban: Meghalt Chuck Norris
- eBay-es kütyük kis pénzért
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- MasterDeeJay: RAM gondolatok: Mennyi a minimum? DDR3 is jó?
Ú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?:))
- iPhone topik
- Mibe tegyem a megtakarításaimat?
- Vezetékes FEJhallgatók
- ASUS routerek
- Luck Dragon: Asszociációs játék. :)
- AMD Navi Radeon™ RX 9xxx sorozat
- Győr és környéke adok-veszek-beszélgetek
- PlayStation 5
- Jó a retró: Chieftec UNI számítógépház
- Kínai és egyéb olcsó órák topikja
- További aktív témák...
- Nothing Phone 3a alza.hu-s vásárlás, független, 8GB/128GB
- KIEMELT AKCIÓ: kitűnő állapotban lévő Apple iPad Pro Tablet 12.9" 128 GB szuper áron eladó !!! (2)
- Lenovo ThinkPad L14 Gen 1 Ryzen 5 pro 4650U, 16GB RAM, 256-512GB SSD, jó akku, számla, gar
- Microsoft Xbox Classic + 1 db Kontroller, valamint Need For Speed játék
- iPhone 16 Pro 128GB Független Használt/1-3 hónap gar./Akku 89%/p4813
- HP OMEN Transcend 2.8K OLED / Ultra 7 155H / RTX4060 8GB / 16GB 7467MHz / 1TB NVMe! BeszámítOK
- 187 - Lenovo LOQ (15IRX10) - Intel Core i7-13650HX, RTX 5070 (ELKELT)
- 1000 W HP DPS-800GB-A szerver tápegység
- AKCIÓ! Intel Core i9 10900 10mag 20szál processzor garanciával hibátlan működéssel
- Samsung Galaxy S21 független 8/128 akku:96% ÚJSZERŰ
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


