Hirdetés
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Xiaomi 15T Pro - a téma nincs lezárva
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Megtalálták az akkumulátortechnológiai Szent Grált? - CES
- Xiaomi 14T - nem baj, hogy nem Pro
- Xiaomi 15 - kicsi telefon nagy energiával
- Apple Watch Sport - ez is csak egy okosóra
- Apple iPhone 13 mini - miért nem veszik elegen?
- iPhone topik
Ú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?:))
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- BestBuy ruhás topik
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Milyen légkondit a lakásba?
- Kingdom Come: Deliverance I-II.
- Milyen széket vegyek?
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Microsoft Office és Office 365 topic
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Kompakt vízhűtés
- További aktív témák...
- iPhone 17 512 GB Párakék - Bontatlan - 1 év gyári Apple garancia, Hivatalos Apple Resellertől!
- Kingston 240GB Sata SSD
- AMD Ryzen R7 5800X / Beszámítás OK!
- Lenovo Yoga 7 2-in-1 OLED Ryzen 5 8640HS 16GB /512SSD/1év gari
- Dobozos Asus VivoBook S 15 Laptop 15,6" -30% Snapdragon X Elite 32/1TB 3K OLED 120Hz
- HIBÁTLAN iPhone 14 512GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3922
- HIBÁTLAN iPhone 14 Pro 128GB Space Black -1 ÉV GARANCIA -Kártyafüggetlen, MS3590
- Hario MINI MILL SLIM PLUS tekerőt keresek, mert elveszett
- Lenovo ThinkPad // T - Széria // X1 carbon // X1 Yoga 2-in-1 // és a többiek... 3-12. gen.
- Dell Latitude 5300 13,3" FHD IPS touch, i7 8665U, 8-16GB RAM, SSD, jó akku, számla, 6 hó gar
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest




