- Mindenki Z Fold7-et akar
- Apple Watch
- iPhone topik
- Képen az iPhone 17 Pro kétféle akkumulátora
- Nubia Red Magic 10S Pro - újratöltve
- Motorola Edge 50 Ultra - szépen kifaragták
- Komoly akcióval érkezik Magyarországra a Honor Magic V5
- Garmin Venu X1 - vékony, virtuóz, váltságíjas
- Egy óra, két rendszer
- Xiaomi 15 - kicsi telefon nagy energiával
Hirdetés
Köszönjük a sok biztatást, támogatást! Utolsó pillanat a féláras hirdetésfeladásra, előfizetésre!
Ú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?:))
- LEGO klub
- Mindenki Z Fold7-et akar
- Kecskemét és környéke adok-veszek-beszélgetek
- Apple Watch
- Miért vezet mindenki úgy, mint egy állat?
- Újabb videón a Mafia: The Old Country
- iPhone topik
- Honda topik
- Eredeti játékok OFF topik
- Az MSI legfrissebb grafikus kártyái push-pull hűtést kaptak
- További aktív témák...
- Szinte új! 3 Hónapos! Playstation 5 Slim Disc (Lemezes) Kiadás! Garancia: 2027.05.15
- Logitech Z333 2.1 (980-000953/1202) Aktív hangfal
- NVIDIA Quadro M2000 4GB GDDR5 profi munkára, CAD, 3D, stabil kártya!
- Csere-Beszámítás! Ajándék ROG Táska! Asus Rog Ally Z1 Extreme RC71L - 512GB SSD + 16GB LPDDR5
- Asus BE24A 24" IPS monitor
- Eredeti Lenovo 300W töltők - ADL300SDC3A
- LG 32SQ700S-W - 32" VA Smart - 3840x2160 4K UHD - 62Hz 5ms - WebOS - Wifi + BT - USB-C - Hangszórók
- Acer TravelMate P214 i3-1115G4 12GB 512GB 14" FHD 1év garancia
- Bomba ár! Lenovo ThinkPad T470 - i5-G6 I 8GB I 256GB SSD I 14" FHD I HDMI I Cam I W10 I Garancia!
- GYÖNYÖRŰ iPhone SE 2020 128GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS2183, 100% Akkumulátor
Állásajánlatok
Cég: FOTC
Város: Budapest