Hirdetés
- iPhone topik
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Kétezer eurós csomag lehet a Vivo X300 Ultra
- Apple iPhone 17 Pro Max – fennsík
- Samsung Galaxy S25 FE - fenséges, felejthető vagy felesleges?
- Fotók, videók mobillal
- Poco F8 Ultra – forrónaci
- Google Pixel topik
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- Xiaomi 15T Pro - a téma nincs lezárva
Ú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?:))
- Hardcore café
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- The Division 2 (PC, XO, PS4)
- PROHARDVER! feedback: bugok, problémák, ötletek
- Trollok komolyan
- iPhone topik
- Milyen program, ami...?
- Samsung Galaxy Felhasználók OFF topicja
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Kétezer eurós csomag lehet a Vivo X300 Ultra
- További aktív témák...
- MacBook Pro 13" M1 16GB RAM/ 1TB SSD 27%-os ÁFÁS - 0429AB
- BESZÁMÍTÁS! Lenovo Yoga Book 9 13IMU9 notebook - Ultra7 155U 32GB DDR5 1TB SSD Intel Graphics W11
- Bomba ár! Lenovo ThinkPad Yoga L390 - i5-G8 I 8GB I 256GB SSD I 13,3" FHD Touch I W11 I Cam I Gari
- Keresünk iPhone 12/ 12 Mini/ 12 Pro/12 Pro Max
- REFURBISHED - Lenovo ThinkPad 40AF Dock (DisplayLink) (2 4K felbontás)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



