Hirdetés
- Meggyi001: Amire figyelned kell Párizsban is...
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- GoodSpeed: Te hány éves vagy?
- sziku69: Szólánc.
- hcl: Amúgy mi a terv?
- arabus: 256GB-os DDR5 memóriamodul 5700 USD.
- Geri Bátyó: Agglegénykonyha különkiadás – Bors
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- MasterDeeJay: Érdekesség: 16GB-os DDR3 sodimm modul asztali gépben
Ú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?:))
- Nem indul és mi a baja a gépemnek topik
- Apple iPhone 17 Pro Max – fennsík
- Víz- gáz- és fűtésszerelés
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- MIUI / HyperOS topik
- Samsung Galaxy S25 - végre van kicsi!
- SSD kibeszélő
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- DUNE médialejátszók topicja
- Meggyi001: Amire figyelned kell Párizsban is...
- További aktív témák...
- Zotac mini PC, több db
- Acer óriás laptop 17" 4GB RAM 500GB HDD DVD újszerű 91%-os akku!
- Apple iPhone 15 Plus 128GB, Kártyafüggetlen, 1 Év Garanciával
- Dell Precision 5570 4K+ OLED Touch / i7-12800H 14C / 16-32G / 512G / RTX A2000 8G / IR FPR WS
- Dell Precision 7560 FHD / i7-11850H / 32G / 512G G4 / RTX A4000 8G / SCR WS tervező
- BESZÁMÍTÁS! ASUS ROG B760 i9 14900K 32GB DDR5 1TB SSD Asus ROG RTX 3090 24GB Zalman Z1 1000W
- 0perces! Samsung Galaxy Book5 Pro 360 2in1 Core Ultra 7 256V 16GB 1TB 16" WQXGA+ AMOLED TOUCH 1évgar
- BESZÁMÍTÁS! MSI B450M R5 5600X 16GB DDR4 512GB SSD RX 9060 XT 16GB Rampage SHIVA ADATA 650W
- BESZÁMÍTÁS! Acer Predator Helios Neo 18 Ai - Ultra 9 275HX 32GB DDR5 1TB SSD RTX 5070Ti 12GB W11
- Apple iPhone 13 128GB,Átlagos,Adatkabel,12 hónap garanciával
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest



