Hirdetés
- Samsung Galaxy A56 - megbízható középszerűség
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Okosóra és okoskiegészítő topik
- Fotók, videók mobillal
- Külföldi prepaid SIM-ek itthon
- Újabb részletes képeken a Google Pixel 10a
- Méretes telekonverter az Oppo Find X9 Ultra hátán
- OnePlus 15 - van plusz energia
- Szívós, szép és kitartó az új OnePlus óra
Ú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?:))
- Filmvilág
- Forza sorozat (Horizon/Motorsport)
- Revolut
- bitpork: Ha Isten létezik...
- Azonnali fáradt gőzös kérdések órája
- Kínai és egyéb olcsó órák topikja
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- Az elmúlt 30 év legjobb processzorai
- A fociról könnyedén, egy baráti társaságban
- Elektromos autók - motorok
- További aktív témák...
- Corsair MP600 PRO XT 2TB Heatsink NVMe PCIe Gen. 4
- Samsung 27" 2K 2560x1440 monitor S27A850D PLS panel, kis hibákkal, DP porton kell használni!
- NEC 27" 2K 2560x1440 IPS monitor pici hibával PIVOT mód, HDMI, DP port
- Epson WorkForce Pro WF-C579RDWF (C11CG77401) A4-es, színes üzleti tintasugaras MFP nyomtató eladó
- iPhone 15 Pro Max Natúr Titán 256 GB
- AKCIÓ! Dell Latitude 3530 üzleti notebook - i5 1235U 8GB DDR4 512GB SSD Intel Iris Xe WIN11
- BESZÁMÍTÁS! MSI B550M R5 5600X 16GB DDR4 512GB SSD ROG RTX 3070 Ti 8GB Asus A31 PLUS TG ARGB 750W
- HIBÁTLAN iPhone 13 Pro 128GB Sierra Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS4088
- iPhone 17 Pro 256 GB - Bontatlan !! www.stylebolt.hu - Apple eszközök és tartozékok !!
- 152 - Lenovo LOQ (15IRH8) - Intel Core i5-12450H, RTX 4060 (ELKELT)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs




