Hirdetés
- bambano: Bambanő háza tája
- 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) :)
- Gurulunk, WAZE?!
- GoodSpeed: 3I/Atlas: Üstökös vagy idegen civilizáció űrhajója?
- Meggyi001: Több tucat Eiffel torony??? Igen, gyere, mutatom, hogy hol...
- sziku69: Szólánc.
- V.Milán: Lapdiffúzor nyomáseloszlása: gondoltad volna?
- laskr99: DFI és DFI Lanparty gyűjteményem
Ú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?:))
- Xiaomi 15 - kicsi telefon nagy energiával
- exHWSW - Értünk mindenhez IS
- Kormányok / autós szimulátorok topikja
- VR topik (Oculus Rift, stb.)
- Milyen billentyűzetet vegyek?
- Autós topik látogatók beszélgetős, offolós topikja
- Háztartási gépek
- Sütés, főzés és konyhai praktikák
- Samsung Galaxy S23 Ultra - non plus ultra
- Milyen TV-t vegyek?
- További aktív témák...
- Xiaomi Redmi 15 128GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung,Dell,iiyama,LG,BenQ,AOC monitorok,garancia,számla,22-24",IPS,TN,W-LED,HD,FHD,FHD+
- Samsung Galaxy A56 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- GIGABYTE AORUS FO32U2 Monitor(oled,4k,240hz)+ monitor arm
- 27% - MSI RTX 4060 Ti VENTUS 3X OC 8GB GDDR6X Videokártya!
- Ulefone Armor 33 Pro
- iPhone 13 mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS4065, 100% Akkumulátor
- Xiaomi Redmi 13 4G 128GB, Kártyafüggetlen, 1 Év Garanciával
- HIBÁTLAN iPhone 15 Pro Max 256GB Black Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS3497, 100% Akksi
- Telefon felvásárlás!! Samsung Galaxy A13/Samsung Galaxy A33/Samsung Galaxy A53
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



