- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- Xiaomi 15T Pro - a téma nincs lezárva
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Google Pixel topik
- iGO Primo
- iPhone topik
- One mobilszolgáltatások
- Így lehet kiszúrni, ha kamu AirPods fülest akarnak eladni neked
- Amazfit Active 2 NFC - jó kör
- Android alkalmazások - szoftver kibeszélő topik
Új hozzászólás Aktív témák
-
Lortech
addikt
Nyilván minden függőséget oda kell tenni mellé, hogy forduljon. Kiexportálod a teljes jar forrását, behúzod IDE alá egy projekt forrásaként. Ekkor a jaron belüli függőségekkel megvagy, ha egyéb libtől is függ a lefordítandó osztály, akkor azt is build pathhoz adod. A cannot find symbol hibák hiányzó típusokat jelentenek, ha nem tudod, hol a hiányzó függőség, rá kell keresni az alkalmazás/konténer egyéb csomagjaiban (jar,war,ear), ha vannak.
-
n00n
őstag
A hibák nagy részét kijavítottam, három maradt amivel nem tudok mit kezdeni:
SajatPanel.java:379: error: cannot find symbol
/* 305 */ Logger.getLogger(SajatFrame.class.getName()).log(Level.SEVERE, null, ex);
^
symbol: class SajatFrame
location: class SajatPanel
SajatPanel.java:386: error: cannot find symbol
/* 312 */ SajatDialog mdialog = new SajatDialog(null, true);
^
symbol: class SajatDialog
location: class SajatPanel
MentesPanel.java:386: error: cannot find symbol
/* 312 */ SajatDialog mdialog = new SajatDialog(null, true);
^
symbol: class SajatDialog
location: class SajatPanel
3 errorsA SajatFrame és a SajatDialog külön classok.
-
Lortech
addikt
Persze, jadolod (pl. jd-gui), módosítod, és újrafordítod, a classt kicseréled a jar-ban.
(Feltéve, hogy a licence megengedi.
)
Közben figyelj, hogy a class verzió (major/minor) egyezzen, azaz lehetőleg ugyanazzal a jdk-val fordítsd, amivel eredetileg fordítva lett. Ebben a MANIFEST.MF segíthet, ha rendesen ki van töltve, de javap-vel érdemes leellenőrizni. -
Cathfaern
nagyúr
Ha logikailag egy alkalmazás (pl. nyilvános oldal + annak admin felülete), akkor nem sok értelme van. Ha valami cross-site login dolgot akarsz (pl. van egy már elterjedt oldalad, sok felhasználóval, és akarsz csinálni egy teljesen mást, de közös bejelentkezést akarsz), esetleg akkor lehet értelme a különvételnek.
-
Aha. Hat, multkor installaltam Windowst, aztan beirtam, hogy
C:\>cinst notepadplusplus 7zip java.jdk putty skype paint.net windirstat winscp greenshot git totalcommander conemu SourceTree foobar2000 kdiff3 Firefox poweriso IrfanView lighttable
... ittam egy teat, es mire vegeztem, ez mind fentvolt, magatol. A mysql, tomcat es tarsai ugyanigy felugranak, konzolbol. IntelliJ-t nyilvan nem tudsz repobol telepiteni te sem.
Szoval ezek a dolgok nagyreszt hozza nem ertesbol fakadnak es/vagy urban legendek. Lehet mindenen fejleszteni az esetek nagyreszeben. Van, ahol tenyleg jobb a Linux (peldaul Node.js-hez), van, ahol meg a Windows (nyilvanvaloan .Netes dolgokhoz).
-
-
bucsupeti
senior tag
Csináld meg először karakteres programként. Ha az működik utána csinálj hozzá gui-t. Szerintem sokkal jobban meg fogod érteni és el tudod szeparálni az alkalmazás egyes rétegeit és ha a gui-s részhez érsz, már egyértelmű lesz az is hogy hol is tárolódik az alkalmazás valamilyen adata...
Magyarul először az üzleti logikát dolgozd ki...
-
bucsupeti
senior tag
desktop alkalmazásnál ez miért probléma? bejelentkezéskor eltárolod egy objektumban az adatokat... Nyilván ennek az objektumot minden modulból elérhetőnek kell lenni.
Lehet hogy nem értem igazán hogy mit szeretnél.Vagy összekattintgattad a képernyőket és a login képernyőről a sikeres bejelentkezés után az infókat akarod továbbvinni?
-
bucsupeti
senior tag
Ez a példa amit felvázoltál Java EE tanulásra tényleg megfelelő. De ha most kezded a JAVA-t akkor lehet hogy inkább valamilyen lokális alkalmazást JAVAsolnék.
Az EE-t én is nem régen kezdtem és hatalmas a téma, rengeteg framework kínálja magát, az adatbázisokról és a perzisztenciakezelőkről nem is beszélve.A példád alapján én a következőt javaslom:
Csináld meg a felvázolt példát karakteres JAVA programként. Lehessen lekérdezni a szabad helyeket, amit egyenlőre kilistázna. Akár lehet bonyolítani hogy bekéri hogy a nézőtér melyik sorára kíváncsi a felhasználó, ezt beírva kiírná hogy az adott sorban milyen sorszámú székek szabadok.
Jó kis tanuló algoritmus lehet hogy megadja a felhasználó hogy hány helyet szeretne és kilistázza hogy hol tud ennyi széket egymás mellett foglalni stb...Ezt először csináld meg adatbázis nélkül a memóriában tárolva konténerekkel. Utána csináld meg JDBC-vel adatbázisban, majd valamilyen perzisztenciakezelővel.
Meg fogod tapasztalni hogy milyen jó dolog egy ORM rendszer.
Ezek után belekóstólhatsz a gui programozásba, lokális desktop alkalmazást csinálva swing komponensekkel.Ezek után jöhet a felvázolt weboldal, de ez nagyobb falat lesz az biztos. A JavaEE megismerése nem kis feladat. Meg kell ismerni az architekturát, a servlet konténereket, az alkalmazásszervereket. Utána jöhet az EJB programozás és valamilyen framework amivel kényelmesen tudod összerakni a ui-t.
A példa szerintem jó, meg lehet rajta keresztül sokmindent tanulni. Sok sikert és kitartást!
-
Senhi
aktív tag
Tiszta JavaEE-vel:
Db-nek jó szerintem a Mysql.
Szervernek a legegyszerűbb a TomEE, esetleg GlassFish.
Adatréteg JPA, hozzá providernek EclipseLink
Üzleti-logika: EJB-k
Megjelenítés: JSF + ehhez kiegészítésként PrimeFaces amivel több komponensed lesz. Mondjuk JSF helyett millió egy másik technológia van, majd többiek mondanak mást. -
axioma
veterán
Hat lassan jobban jarnal ket egyutt karbantartott arraylist-tel... veletlenszam maximuma es a szo kiragadasa szam alapjan egyszerubb, ha nem torolsz soha akkor oly tok mindegy, hozzafuzni egyutt kell, ennyi. Nem tudom, hogy a hatterben mivel dolgozik a hashmap, de ha van benne valami onszervezo fa, akkor azt is el tudnam kepzelni, hogy a sorszamok veletlenszerusege ellenere a kulonbozo atalakitos trukkokkel igy kapott szavak nem lesznek eleg veletlenszeruek.
A szo eleji nagybetut majd illene ignoralni ellenorzeskor... -
WonderCSabo
félisten
200 elemnél még egy sima array és lineáris keresés is elég... Ekkora elemszám már gyakorlatilag nulla a mai processzorteljesítményekhez, ha más adatszerkezetbe szervezed nem fogsz gyorsulást tapasztalni. 1 millió elemnél már igen.
Egyébként a legkényelmesebb erre a célra valamilyen kétirányú map, pl. Guava Bimap. Vagy ha egyirányú a tanulás akkor elég egy HashMap is.
-
axioma
veterán
Ugyan nem offline, es plane nem is programozas, de magara az eredeti a celra - ha a feltetelek nem akadalyok - ajanlom a meglevo quizlet.com-ot. Tobb gyakorlasi mod, kulonbozo szohalmazok definialasa, stb.
-
WonderCSabo
félisten
Átfutottam a kódot. fordfairlane megjegyzése teljesen helytálló, azt kell mondjam. Gyakorlatilag a teljes programért az Asztal osztály felel. Nem túl szép, hogy a GUI, az eseménykezelést és az üzleti logikát mind egyetlen osztályba szuszakolod bele. Először is szét kéne választani a GUI-t és a logikát. Erre lehet használni mindneféle architektúrát, pl. MVC-t de az se kell ide, elég legyen annyi, hogy a különböző Swing-es leszármozott osztályaid nem tartalmaznak logikát, továbbá a logikáért felelős osztályok nem is tudnak a GUI-ról. Továbbá az egész kódot lehetne dekomponálni, modulárisabbá tenni. Egy ilyen kártyajátéknál ez egész könnyü, hiszen ez iskolapélda is, pl. ilyen szereplőkről lehetne beszélni: játékos, pakli, kártya, menedzser (lépéseket vezérli), stb.
-
-v-
addikt
-
xTc
aktív tag
@Override
protected Integer doInBackground() throws Exception {JFrame frame = new JFrame();
frame.setSize(400, 200);
frame.setLocationRelativeTo(null);
FileCopierPanel panel = new FileCopierPanel();
FileCopier fc = new FileCopier();
panel.setFileCopier(fc);
frame.add(panel);
frame.setVisible(true);fc.copy(copyJob);
return null;}
Itt null-t adsz vissza, és Integert specifikálsz. Nem biztos, hogy ez a hiba, de ez így biztosan nem az igazi.
-
xTc
aktív tag
Helló!
Nagyjából a standard File API alkalmas arra, amit szeretnél. Fájl másolás, meglétének validálása abszolút nem gond. Viszont a diszk mount/unmount témakör már kérdésesebb. A java.lang.Process csomaggal szerintem ezt is meg lehetne oldalni. Viszont, a privilégiumszint emelést (root jog "megszerzése") is meg kell oldanod.
Biztosan van olyan, aki nagyobb tapasztalattal rendelkezik a témában mint én, hátha van ennél egyszerűbb megoldás is.
-
floatr
veterán
Ha már adott a rendszer, és nem szégyellném használni az OS adottságait, és shell parancsokat osztogatnék

Persze meg lehet kézzel csinálni a file másolgatást is, de a binugz shell parancsokkal gyorsabban lehet haladni, bár ezzel kötöd magad a rendszerhez.
-
TBG
senior tag
Ah, annyira rühellem, hogy harapófogóval kell kihúzni belőled mindent.
Tisztázzuk, olyan Java kód nincs, ami a megakadályozza, hogy kihúzzák a pendrive-ot. Azt tudod csinálni, ahogy korábban is mondtam, hogy az /mnt/pendrive könyvtárat csekkolod...ha már nem létezik, akkor le van választva.... -
WonderCSabo
félisten
Ez attól függ, hogy mekkorák a fájlaid, amiket másolsz. Ha sok kicsi fájlod van, akkor kis buffert érdemes választani, ha nagyokat, akkor lehet nagyobbat is.
A Files.copy() metódusban 8K-s buffer van alapból, érdemes azt választani, valószínűleg a Java mérnökei hosszas tesztelés után választották azt a méretet. Ja és nem megy megás, hanem egy kilobájtos buffer van a Te kódodban.
Na már megint megelőztek.

-
TBG
senior tag
Akkor pedig az a gyanúm, hogy fut a gc a sok objektum miatt és ezért nem látsz memória növekedést. Próbáld meg a cikluson kívül deklarálni a stream-eket..tipp...esetleg nézhetnéd, hogy a fájlműveletek hogyan alakulnak OS szinten. Lehet, hogy az OS-ben torlódnak a másolási műveletek.
-
WonderCSabo
félisten
Egyébként nekem az a tippem, hogy a szamlalo kisebb, mint 100, ezért annak az egész típusú osztásnak eredménye 0 lesz. Így a következő műveletben 0-val osztasz, és emiatt AritmethicException dobódik. Vagy esetleg a szamlalo eleve 0.
Superhun megelőzött, miközben a hszt írtam.
-
Futtass egy ciklust a konkrét másolás előtt, amiben megszámolod, hogy hány fájl nem létezik a célmappában a forrás mappából. Miután ez megvan, kell egy másik számláló, amit megnövelsz eggyel, ha nem létezik egy fájl és másolni kell. A százalék pedig a (float) atmasoltFajlokSzama / masolandoFajlokSzama * 100;
-
n00n
őstag
Csak azt kellene megszámolnom ami nem létezik fájl. Eddig így néz ki (ez a létezőket is beleszámolja):
private void fajlokSzama(String dirPath) {
File f = new File(dirPath);
File[] files = f.listFiles();
if (files != null) {
for (int i = 0; i < files.length; i++) {
File file = files[i];
if (file.isDirectory()) {
szamlalo++;
fajlokSzama(file.getAbsolutePath());
} else {
szamlalo++;
}
}
}
}Ötlet?
Ugye a file-ba van benne az elérési út. Pl d:/innen\masol\1.fajl. Ebben kellene a d:/innen/ lecserélni d:/ide/-re.
-
-
TBG
senior tag
Nem elég részletes a workaround. Belenyúlt a gyári osztályba vagy csak egy @Override-t használt?
Szerk:
http://developer.classpath.org/doc/javax/swing/ProgressMonitorInputStream-source.html
Elvileg egy extend elég lenne, csak a ProgessMonitor ugyancsak int-et vár és nem long-ot.

76-93Szóval azt is extendálni kellene...
-
WonderCSabo
félisten
Ott vmi gáz lesz, mert a SwingWorkernek pont az a lényege, hogy a doInBackground fv, amit az execute hív meg, egy külön szálon fut le.
Cím:
UIManager.put("ProgressMonitor.progressText", "Progress title?");
-
n00n
őstag
További kérdés: Keresem, de nem találok rá módot, hogy átírjam a ProgressMonitorInputStream címét, illetve, hogy ne legyen cancel gomb. Nincs ilyen konstruktora és metódusai sem. Ötlet?
Szerk.: Valóban. Én néztem be. Ebben a hozzászólásban azonban még mindig nem tudtam megoldani a címet és mégse gombot.
-
modder
aktív tag
Ilyen egyszerű esetekben, illetve ha fontos a sebesség, érdemes inkább megkeresni a ";" helyét String.indexOf vagy String.lastIndexOf függvénnyel, aztán a két adatot a String.substring függvénnyel kiszedni az eredetiből.
Fapadosabb megoldás, de gyorsabb.
10 sornál nem lesz érezhető különbség, de több száz sornál már igen.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Call of Duty: Black Ops 7
- Windows 11
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- Kormányok / autós szimulátorok topikja
- Xiaomi 15T Pro - a téma nincs lezárva
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- ThinkPad (NEM IdeaPad)
- Mikrotik routerek
- Gumi és felni topik
- További aktív témák...
- BESZÁMÍTÁS! GIGABYTE B650E R9 7900X 64GB DDR5 1TB SSD RTX 5080 16GB NZXT H9 Flow White Corsair 850W
- BESZÁMÍTÁS! MSI X570 R5 5600X 32GB DDR4 512GB SSD RX 6800 16GB Kolink Unity Lateral ARG 750W
- BESZÁMÍTÁS! MSI B650 R5 9600X 32GB DDR5 1TB SSD RX 9070XT 16GB Lian Li LANCOOL II Mesh C RGB 750W
- BESZÁMÍTÁS! Gigabyte B450M R5 3600 16GB DDR4 512GB SSD GTX 1070 8GB Zalman S3 Chieftec 700W
- BESZÁMÍTÁS! Gigabyte B360M i5 8400 16GB DDR4 512GB SSD RTX 2070 8GB RAMPAGE Shiva Adata 600W
- Telefon felvásárlás!! Samsung Galaxy S25, Samsung Galaxy S25 Plus, Samsung Galaxy S25 Ultra
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- LG QNED MiniLED Gaming Televíziók -30%
- ÁRGARANCIA!Épített KomPhone i9 14900KF 32/64GB DDR5 RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
- ASUS ROG Falchion Ace HFX Magnetic FR
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest








