- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- talmida: Változások 2. rész
- MasterDeeJay: RAM gondolatok: Mennyi a minimum? DDR3 is jó?
- Oldman2: A KOReader ebook olvasó program
- lkristóf: Prohardver fórum userscript – hogy lásd, mikor neked válaszoltak
- Brogyi: CTEK akkumulátor töltő és másolatai
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- erer1000: Milyen tesztekre lennétek kíváncsiak a lenti káosz gépet illetően?
Ú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?:))
- Új MSI 15 Katana FHD IPS 144Hz i7-13620H 10mag 16GB DDR5 1TB SSD Nvidia RTX 4060 8GB Win11 Garancia
- Eladó garanciális Synology DS223j NAS
- Dell Precision 5530 15,6" UHD touch, i7 8850H, 16GB RAM, 4GB VGA, 512GB SSD, jó akku, számla, gar
- Eladó férfi nike airforce cipő 45.5 fekete/fehér
- EVGA RTX 3070 Ti 8GB GDDR6X FTW3 ULTRA Eladó!
- LG 25GR75FG - E-Sport Monitor - FHD 360Hz 1ms - NVIDIA Reflex + G-sync - AMD FreeSync - HDR 400
- Eredeti Lenovo 300W töltők - ADL300SDC3A
- iKing.hu Apple iPhone 12 Pro Max 128GB Gold használt, megkímélt 100% akku 6 hónap garancia
- Veszünk: PS5 Fat/Slim/Digital/Pro konzolt, játékokat, Portalt stb. Kérj ajánlatot!
- Új Apacer 16GB DDR4 3200MHz
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


