Hirdetés
- Feháborodott az Apple, a Meta az iPhone-felhasználók üzeneteit akarja olvasgatni
- A luxusmárkáknak kell a bitcoin, az USA jegybankjának nem
- Letiltja az USA a politikusokat a telefonhívásokról és szöveges üzenetekről
- Nagy áttörés jön a napelemek piacán, nem kell annyi hely a paneleknek
- Belenyúlt az USA az Epic Games igazgatótanácsába, nyomoz az NVIDIA
Új hozzászólás Aktív témák
-
n00n
őstag
Sajnos látatlanban én sem tudtam többet mondani, azóta voltam a helyszínen és kiderült, hogy valaki teleírta az egyik properties fájlt random karakterekkel és annak a beolvasásánál halt el a dolog. Szóval igazából nem Java hiba volt.
-
n00n
őstag
Sziasztok!
Van egy régi Javas appunk, ami kb. 3 éve változatlanul fut MINDEN NAP, majd egyik nap ezt a hibát kaptuk:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1
úgy, hogy senki hozzá se nyúlt, egy jar van odarakva forrás nélkül. Azóta nem is indul el, mindig ezt írja. Ötlet, hogy mi váltatta ki ezt a hibát?
[ Szerkesztve ]
-
n00n
őstag
Sziasztok!
10 éve dolgozom System Admin/DevOps szerepkörben több nemzetközi cégnél. Viszont mostanában az infrastruktúra területéről kacsingatok a fejlesztés felé, leginkább a java érdekel. Nem vagyok benne totál kezdő, MSc-s diplomám van, ahol volt jó pár programozói kurzusom is, amiket könnyedén vettem. Volt köztük több Java-s is. A szakdolgozatomnál például egy monitorozó rendszert készítettem, aminek a felülete Springes volt. Viszont azóta eltelt már pár év. Szerintetek mennyi idő alatt lehet annyira átképezni magam, hogy már való életbeli projekteken dolgozhassak? A cégnél van képzés, heti 3x 1,5 óra, amit igénybe vehetek. Szerintetek reális lehet az egy év erre?
-
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.
-
n00n
őstag
-
n00n
őstag
Sziasztok!
Van egy ezer éves jar file-om, amihez sajnos már nincs meg a forrás. Át kellene írnom egyetlen metódusban két értéket, van erre valami módszer?
if ((this.egyes.exists()) || (this.kettes.exists()))
{
if (this.egyes.exists()) {
this.egyes = "EGYES";
}
if (this.kettes.exists()) {
this.kettes = "KETTES";
}
}
}na már most még csak a változók neveit sem akarom átírni, csak az értékük legyen HÁRMAS vagy NÉGYES. Megoldható ez?
-
n00n
őstag
válasz gergo5991 #6430 üzenetére
Ennek mi köze a Javahoz? (Javascript topikba tedd fel)
-
n00n
őstag
Sziasztok!
Kellet egy "elég komoly" beadandót írnom. Sikerült is, azaz működik. De nem bánnám, ha ránézne olyas valaki aki már régóta foglalkozik Java-val, hogy mik a tényleg nagyon amatőr hibák. Beadandó lévén inkább nem tenném ide be, hanem privátban küldeném el.
-
n00n
őstag
WEB-INF - pages - home.jsp tartalma:
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/stilus.css" />
resources/css/stilus.css
A két könyvtár egy mappaszinten van és mégse jó. Ötlet?
-
n00n
őstag
Sziasztok!
Innen leszedtem egy forráskódot tanulmányozásra: https://github.com/Fruzenshtein/security-spr
Ennek a leírásnak a kódja: http://www.javacodegeeks.com/2013/05/spring-mvc-security-with-mysql-and-hibernate.html
De STS-ben indítva ezt kapom:
HTTP Status 404 - /security-spr/
--------------------------------------------------------------------------------
type Status report
message /security-spr/
description The requested resource is not available.
--------------------------------------------------------------------------------
Apache Tomcat/7.0.56Ötlet?
-
n00n
őstag
Kicsit off kérdés.
Szeretnék adatbázist használni a Springes app-omhoz. Ehhez Hibernate-et szeretnék használni. Ti milyen adatbázist tennétek alá? MySQL-el sokat foglalkoztam régen. Jó lehet az alá? Vagy van jobb ötlet? (Leginkább a tapasztalatokra lennék kíváncsi).
-
n00n
őstag
Akkor szerintetek külön se vegyem?
-
n00n
őstag
Van egy Webapp1 nevű servlet, ezen vannak statikus html oldalak, illetve egy login form. Ha jó a felhasználónév, jelszó, akkor egy teljesen új felület jelenne meg. Ezt úgy tudom új projektbe illik megírni.Ezt is kiexportálom .war-ba. Akkor hogy tudok az egyik warból a másikra hivatkozni? Remélem érthető.
-
n00n
őstag
Sziasztok
Elkezdtem ismerkedni csak úgy hobbiból a Springgel. Össze is raktam egy Spring MVC webappot. Kiexportáltam .WAR fájlba felraktam egy szerverre (Tomcat 7) és nagyon szépen megy. Viszont azt, hogy tudom megoldani, hogy ebből a webappból "indítok" egy másikat? Hogy tudok ráhivatkozni? Próbálok rákeresni angolul, de nem sok sikerrel...
-
n00n
őstag
válasz Aethelstone #6065 üzenetére
Cégnél a Windowsos (7) fejlesztőinknek 2-3x tovább tart összevadászni és telepíteni a fejlesztőkörnyezetüket, mint aki Linuxon (Ubuntu 14.04) fejleszt. Windowson sokszor hegeszteni kell, ami Linuxon out of box megy. Nem mondom, hogy nem lehet, hogy máshol fordított a helyzet. Nálunk ezt tapasztaltam.
-
n00n
őstag
Sziasztok!
Találtam tök érdekes szakdolgozatokat a következő linken: https://dea.lib.unideb.hu
De csak egyetemi IP-ről lehet őket letölteni? Valaki tudna ebben segíteni nekem? Jár/járt oda, stb?
-
n00n
őstag
És az mennyire biztonságos? Azt ha jól tudom elvileg bárki elérheti, nem?
szerk.: Jó, hülye vagyok. A jelszót nem tárolom benne.
Más: Úgy oldottam meg, hogy van egy JFrame-em ezen egy JPanel amin van a bejelentkezés. Ha az adatbázisban benne van a felhasználó és a titkosított jelszó, akkor a JFrame lecseréli a JPanelt arra amit a bejelentkezett felhasználók látnak. Ez így nagyon fapados, mennyire biztonságos?
[ Szerkesztve ]
-
n00n
őstag
Köszi mindenkinek a tanácsot. Úgy döntöttem, hogy elkezdek olvasgatni a módszerekről amiket írtatok, de megírom először "egyszerű" Java-ban Swinggel a kinézett feladatot. Már neki is álltam. Az első kérdésem, ugye van több ablakom ezeken keresztül kellene vinni a bejelentkezett felhasználó adatait (neve, felhasználóneve, stb). Ennek hogyan érdemes neki állni?
-
n00n
őstag
Hú. Köszi mindenkinek a tanácsokat. Utánaolvasok mindannak amit írtatok. Egyébként Desktop GUI-val "foglalkoztam" már. Swing-ben írtam már egy két kisebb alkalmazást. Most inkább a webes dolgok érdekelnének.
-
n00n
őstag
Sziasztok!
Szeretnék csak gyakorlás céljából készíteni egy kisebb Java alkalmazást. Ez így nézne ki:
Lenne egy weboldal (bárki által elérhető), ide ellátogatnának a userek és látnának eseményeket (koncert, színház, stb). Itt tudnának jegyet foglalni az eseményre, tehát megjelenne nekik egy panel ahol kiválasztják grafikusan az ülőhelyeket (a már foglaltak piros színűek, a szabadok zöldek) és elküldik a foglalást.
Ez nyilván egy adatbázisban tárolódna. Én a MySQL-re gondoltam.
A másik oldalon pedig ülne egy adminisztrátor, aki webes felületen látná a foglalásokat grafikusan, meg ilyenek.
A kérdésem, hogy ti milyen technológiákat választanátok ehhez? Kezdő vagyok Java-ból, szeretnék fejlődni és úgy gondolom egy ilyen nagy, gyakorlati projekt sokat segítene. Ezért kérem, hogy érhetően írjátok le, hogy mit használnátok és én utána olvasok a dolgoknak. Köszönöm.
-
n00n
őstag
válasz WonderCSabo #5672 üzenetére
Egyirányú a dolog.
Van egy ilyen Hashmapem:
Map sajatMap = new HashMap();
sajatMap.put("Alma", "Apple");
sajatMap.put("Répa", "Carrot");
sajatMap.put("Labda", "Ball");Ebből, hogy tudok véletlenszerűen kivenni egy kulcsot. Azt kiíratni a képernyőre, majd mellé a hozzátartozó értéket? (A második vele gondolom a .get(key) metódussal megy, inkább az első fele érdekel)
SZERK.: MEGOLDVA. Előbb kérdeztem, mint olvastam volna
[ Szerkesztve ]
-
n00n
őstag
Sziasztok!
Saját használatra írnék egy szótanuló programot. Milyen adatszerkezetben érdemes letárolni a szavakat (angol - magyar verzió összetartozik)? Adatbázis gondolom ágyúval verébre. Fájlból meg nem tudok a közepéről olvasni. Mert véletlenszerűen kellene szavakat kiolvasni.
-
n00n
őstag
válasz Aethelstone #5529 üzenetére
Persze, többször ellenőriztük, darab számra és méretre is stimmel több teszten is.
-
n00n
őstag
válasz Aethelstone #5526 üzenetére
Még nem volt időm éles adatokon kipróbálni. De elvileg pár óra múlva lehetőségem lesz rá, akkor beszámolok róla mennyit jelent az új módszer. De szerintem drasztikusan csökkenni fog az ideje. Jelenleg így néz ki a dolog:
146 227 fájl, 15 400 mappában.
Tehát kb. 10 fájl van egy mappában. Magyarán, ha egy egész mappát ki lehet hagyni, mert semmi nem módosult benne, akkor nem kell 10 fájlt ellenőrizni. Naponta el kell ezt játszani. És naponta olyan 200 mappában történik durván változás (nincs benne rendszer, hogy melyikben). Tehát ~15 200 mappába bele se kell lépni és ~ 150 000 fájl-t nem kell ellenőrizni, hogy létezik-e.
A régi módszerrel körülbelül 7 perc volt még végig ért minden fájlon. Itt szerintem bőven 5 perc alá fog szorulni a dolog. Ami most nem tűnik olyan soknak, de ha egyszer lehet, akkor miért ne.
-
n00n
őstag
válasz Aethelstone #5520 üzenetére
Régebben is már foglalkoztam vele. Csak mindig félre lett téve, mert annyira nem fontos. Ha viszont van egy kis szabadidőm akkor előveszem. Szerinted ez megoldható úgy ahogy én gondoltam?
-
n00n
őstag
Sziasztok!
Van egy Java függvényem, aminek annyi a lényege, hogy megadunk egy forrás-, és egy célmappát. Majd végigmegy egyesével rekurzívan és átmásolja a még nem nem átmásolt fájlokat:
//másolás függvény:
public void masolasFGV(File src, File dest)
throws IOException {
//Meg vizsgáljuk, hogy mappa-e:
if (src.isDirectory()) {
//Megpróbáljuk létrehozni a mappát (ha van, akkor nem csinál semmit)
dest.mkdir();
//Listába rendezzük a mappa tartalmát:
String files[] = src.list();
//Majd egyesével végigmegyünk rajta:
for (String file : files) {
//Elkészítjük a fájlokat:
srcFile = new File(src, file);
destFile = new File(dest, file);
//Rekurzív másolás:
masolasFGV(srcFile, destFile);
}
} else {
// Ha a cél nem létezik, másolunk:
if (!dest.exists()) {
Files.copy(src.toPath(), dest.toPath());
System.out.println("Másolás: " + src);
} else {
System.out.println("Van már: " + src);
}
}
}Ez szép is meg jó is. Viszont szeretnék rajta egy kicsit módosítani. Tök sok olyan van, hogy egy mappában van még egy csomó mappa, meg fájl és ezek már meg vannak és felesleges újra "megvizsgálni" őket. Ezért egyszerűbb lenne: Megadjuk a forrásmappát és a célmappát. Ellenőrzi az utolsó módosítás dátumát (.lastModified()), ha nagyobb (azaz újabb), mint az utolsó mentés dátuma akkor belemegy és végig megy rajta ugyanúgy, mint a fenti példában. Viszont ellenkező esetben az egészet kihagyja. Valakinek ötlet?
[ Szerkesztve ]
-
n00n
őstag
válasz Aethelstone #5231 üzenetére
Nekem is volt ilyen problémám és én sem találtam jobb megoldást.
[ Szerkesztve ]
-
n00n
őstag
Van olyan aki pénzért vállalna egy kisebb JAVA alkalmazás megírását? Szerintem aki ért hozzá egy-két szóból összerakja, nagyon keveset kell tudnia a programnak. Privátban egyéb infók.
-
n00n
őstag
válasz WonderCSabo #4980 üzenetére
Köszönöm. Akkor, ha valamikor időm engedi teljesen újraírom a javaslatokkal.
-
n00n
őstag
válasz fordfairlane #4975 üzenetére
Nem vagyok az. De ezt írtam is. Ezért kérem ki olyanok véleményét akik értenek hozzá, hogy mi az ami nagyon rossz.
-
n00n
őstag
Sziasztok!
Írtam egy nagyon alap Black Jack-et JAVA-ban. Biztos, hogy profi szemmel nézve gányolás lehet néhány helyen a kód. Valaki nem nézne bele és mondaná el, hogy mi az ami nagyon nem jó és, hogy min kellene változtatni, csak hogy tanuljak belőle.
Letöltések:
Két java fileból áll. Egy BlackJack.java (JFrame), itt semmit nem csinálok szinte és egy Asztal.java-ból:
Megjegyzés: Van benne egy ékezetes függvény, az azóta javítottam. Gondolom nem célszerű használni.
Néhány kép:
[ Szerkesztve ]
-
n00n
őstag
Tudnátok segíteni nekem? Ezt akarom használni fájlmásolásra: http://filecopylibrary.sourceforge.net/
Van egy mentesFrame.java JFrame fájlom amin van egy mentesPanel.java JPanelem.
A mentesPanelen van egy gomb ami megnyomásakor grafikus felületen kellene másolnia a FileCopierPanel-nek, SwingWorker-be raktam, de mégse frissíti rendesen az ablakot:
private void mentesGombActionPerformed(java.awt.event.ActionEvent evt) {
mentesFunkciok mFunk = new mentesFunkciok();
try {
mFunk.doInBackground();
} catch (Exception ex) {
Logger.getLogger(mentesAblakPanel.class.getName()).log(Level.SEVERE, null, ex);
}
}A mentesFunkciok fájl:
public class mentesFunkciok extends SwingWorker<Integer, Integer> {
Source[] sources = new Source[]{
new Source("D:\\Elektronikus dolgok\\teszt\\hostgep")
};
String[] destinations = new String[]{
"D:\\Elektronikus dolgok\\teszt\\celgep\\"
};
CopyJob copyJob = new CopyJob(sources, destinations);
@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;
}
}Min kellene változtatnom, hogy ne csak "fehérség" legyen az ablakban másolás végén?
[ Szerkesztve ]
-
n00n
őstag
Sziasztok!
A cégnél ahol dolgozom van egy elég kokány Java-ban írt mentéskészítő alkalmazásunk. Arra gondoltam, hogy teljesen újraírnám, mert néha furcsán viselkedik. Tanultam főiskolán Java programozást, így az alapok meg vannak és tényleg nem bonyolult. Viszont pár dologban a segítségeteket szeretném kérni.
Amit tudni kell:
NetBeans 7.4-et használok
7-es Java-val.A program az alábbiakat tudja:
Van egy grafikus felület. Rajta egy információs sor, ahol megjelenik az utolsó mentés dátuma, illetve a mentés hosszának ideje. Ezen kívül egy gomb van még Mentés felirattal. A gomb megnyomásakor ellenőrzi, hogy meg vannak-e a szerveren a mentendő fájlok (/home/server/mentendok), be van-e dugva a mentéshez használatos külső merevlemez (dev/eszkozneve). Ha minden oké, akkor felcsatolja a lemezt, a /mnt/mentes-disk alá. Majd elkezdi másolni az adatbázis fájlokat, ebből 4 van. Ha ezzel végzett akkor van egy pdf nevű mappa, amiben körülbelül 10 ezer kisebb fájl van. Ezeket is elkezdi másolni, viszont ha már meg van akkor kihagyja. Ha végzett, akkor lecsatolja a merevlemezt, frissíti az ablakon lévő információkat (utolsó mentés, mentés hossza).
Szóval ezt kellene megírni. Ti merre indulnátok el? Mit használnátok lemez csatoláshoz és lecsatoláshoz Linux alatt?
-
n00n
őstag
Sziasztok!
Van egy nem túl bonyolult kb 1000 sorból álló Java programom. Van itt olyan akinek, ha elküldöm privátban átnézné, hogy min lehetne javítani rajta? Persze honorálom is cserébe valamivel, ha úgy gondolja.
-
n00n
őstag
Azért Java-ban akarom megírni, mert az már készen van egy ideje, csak most kicsit változott, hogy mit kell menteni. 5 adatbázis fájl mellé bejött még kettő, illetve egy mappa kisebb csatolmányokkal. Abból nagyon sok van, de mivel napi mentés van, ezért csak 10-50 db-ot kell egy nap elmenteni ami új.
Akkor, ha jól értem, meg tudnám azt is tenni udev-vel, hogy mountolodjon egy USB csatlakoztatáskor? Mert az lenne akkor talán a legjobb.
-
n00n
őstag
De ez egy folyamatosan futó szerver. Amihez odasétálnak rádugnak egy pendrive-ot, majd utána lehúzzák. Ezért kellene a programból megoldani a mountot és az umountot.
SZERK: Nem rendesen csatolja le néha, és olyankor lehúzza az éppen mentő kolléga és az eléggé nem tesz neki jót.
A következő kód lehet, hogy rossz:
java.lang.Runtime runtime = java.lang.Runtime.getRuntime();
java.lang.Process process= runtime.exec("sudo umount /mnt/pendrive");
process.waitFor();[ Szerkesztve ]
-
n00n
őstag
válasz PandaMonium #4138 üzenetére
De. Mert úgy lett lehúzva, hogy nem lett rendesen unmount-olva.
@TBG: Igen, GUI-val. De ez egy szerver, ott nincs automount.
-
n00n
őstag
Köszi a válaszokat.
Más: Meg kellene oldani, hogy a program felcsatoljon, majd le egy pendrive-ot Linux alatt. Próbáltam közvetlen a Java-ból a Linuxos mount és umount paranccsal, de nem mindig jött össze és egy pendrive bánta azóta. Ötlet?
-
n00n
őstag
Másoláskor mekkora bufferrel érdemes dolgozni?
byte[] buffer = new byte[1024];
Ha egy megával dolgozok, akkor folyamatos a sebesség, viszont lassú. Ha 4-el, akkor az eleje gyors a vége sokkal lassabb, mint az egy megánál. 16-nál még inkább.
-
n00n
őstag
Megnéztem, rendszer szinten se másol gyorsabban, akkor valószínű én vagyok csak telhetetlen
Viszont jól számolom a progress bar-hoz a százalékot?
atmasoltFajlok / (osszesFajl / 100) ?
És ezt hogyan tudnám ábrázolni egy progress baron ami int értéket fogad csak el?
[ Szerkesztve ]
-
n00n
őstag
Köszi mindenkinek, valóban az volt a probléma.
Viszont most az elején szépen elindul a másolás, majd a végére belassul. Nem kellene valami buffert üríteni? Vagy valami amitől gyorsabb lenne?
if (!dest.exists()) {
atmasoltFajlok++;
//if file, then copy it
//Use bytes stream to support all file types
InputStream in = new FileInputStream(src);
OutputStream out = new FileOutputStream(dest);
byte[] bufferPDF = new byte[1024 * 4];
int length;
//copy the file content in bytes
while ((length = in.read(bufferPDF)) > 0) {
out.write(bufferPDF, 0, length);
}
in.close();
out.close();
}Plusz utána másolok még más fájlokat, azok is sokkal lassabbak lesznek...
[ Szerkesztve ]
-
n00n
őstag
Valamiért itt megakad a program és nem tudom, hogy miért:
String szazalek = "" + atmasoltFajlok / (szamlalo / 100);
Ötlet? Windowson gépen megy, majd felrakom Linuxos szerverre és ott nem. Ha átírom a szazalek változót 5-re, akkor jó.
-
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.
[ Szerkesztve ]
-
n00n
őstag
válasz Superhun #4088 üzenetére
Azóta már megoldottam. Köszönöm.
Most a progress barral szívok. Eddig úgy csináltam, hogy másolás előtt megszámoltam mennyi fájl van a kiinduló mappába, majd abból és az átmásolt fájlok számából generáltam a százalékot. Csak ugye ez nem igen működik abban az esetben, ha nem kell fájlokat felülírni.
[ Szerkesztve ]
-
n00n
őstag
válasz Superhun #4068 üzenetére
Ezt sikerült is implementálni. Viszont ez másoláskor felülírja a már meglévő fájlokat. Mit változtassak rajta, hogy ki hagyja azokat amik már léteznek? Ez azért fontos mert több millió kis fájlt kell másolnom, ami baromi hosszú. De naponta futna a másolás és ilyenkor csak pár fájl eltérés lenne.
-
n00n
őstag
Sziasztok!
Írogatok egy programot amiben szükségem lenne a következő funkcióra: Adott egy mappa, benne több száz kis mappával, azokban fájlok. A programnak úgy kellene másolni ezt a mappát, hogy semmit nem ír felül, csak az új dolgokat másolja progress barral, tudnátok adni egy kis iránymutatást?
-
n00n
őstag
Hagytam az egészet inkább és írtam magamtól egy JDialogot egy JProgressbar-ral. Mondjuk azért meglep, hogy egy ekkora bug nincs javítva a Java-ban. Más nem fut bele? Azért ez nem valami szélsőséges felhasználás szerintem, hogy 2GB-nál nagyobb fájlt akarok vele másoltatni és frissíteni a progresst.
-
n00n
őstag
válasz WonderCSabo #3350 üzenetére
Találtam egy ilyet: Bug #6445283
Ez a jelenség ami nálam is van:
"Progress monitor goes to 100% at 2GB, then back to 0%, stays at 0% until 4GB is reached, then goes from 0% to 100% at 6 GB, etc. User has no idea how long entire file will take or may think process is "hung" after 2GB."
Van egy workaround, viszont nem értem mit kellene csinálni:
"CUSTOMER SUBMITTED WORKAROUND :
I've changed the ProgressMonitorInputStream class to "scale" the progress to 32 bits (so ProgressMonitor can use it) after obtaining the file size using FileChannel.size() if the input parameter to ProgressMonitorInputStream constructor is instanceof FileInputStream." -
n00n
őstag
válasz WonderCSabo #3348 üzenetére
A gyenge angoltudásommal feltettem, kíváncsi vagyok valaki megmondja-e mi nem stimmel.
-
-
n00n
őstag
A legegyszerűbb, ha ideírom a forráskódot:
class Copy extends SwingWorker<Void, Void> {
private File selectedfile = new File("D:/Adatok/proba.file");
private File chosenDestination = new File("D:/Adatok/ide/proba.file");
@Override
protected Void doInBackground() throws Exception {
try {
FileInputStream fileInputStream = new FileInputStream(
selectedfile);
BufferedInputStream bufferedInputStream = new BufferedInputStream(
fileInputStream);
ProgressMonitorInputStream progressMonitorInputStream;
UIManager.put("ProgressMonitor.progressText", "Mentés másolása");
UIManager.put("OptionPane.cancelButtonText", "Mégse");
progressMonitorInputStream = new ProgressMonitorInputStream(MentesPanel.this, "Fájl másolása folyamatban", bufferedInputStream);
File outputFile = new File("" + chosenDestination);
FileOutputStream fileOutputStream = new FileOutputStream(
outputFile);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(
fileOutputStream);
int data;
byte[] buffer = new byte[1024];
while ((data = progressMonitorInputStream.read(buffer)) > 0) {
bufferedOutputStream.write(buffer);
}
bufferedOutputStream.close();
progressMonitorInputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
public void done() {
JOptionPane.showMessageDialog(MentesPanel.this, "A mentés másolása befejeződött!", "Kész", 1);
}
}
} -
n00n
őstag
válasz WonderCSabo #3340 üzenetére
Nem. Legalábbis úgy tűnik.
-
n00n
őstag
válasz WonderCSabo #3330 üzenetére
És az miét lehet, hogy másoltatok vele egy 3GB-s fájlt és kb 2.4 GB-nél éri el a 100%-ot a progressBar és utána 0%-ra ugrik a maradék másolásáig. Miért?
-
n00n
őstag
válasz WonderCSabo #3337 üzenetére
Köszönöm. Gondoltam, hogy valami ilyesmi. Elnézést a sok lammer kérdésért.
-
n00n
őstag
válasz WonderCSabo #3335 üzenetére
Köszönöm. Szóval nem lehet, csak ha sajátot csinálok. És akkor legalább átnevezhetem Mégsére?
-
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.
[ Szerkesztve ]
-
n00n
őstag
válasz WonderCSabo #3330 üzenetére
Ez alapján megírtam. Viszont ugye mondanom se kell, hogy "üres" ablakot látok, mert lefogja a GUI-t a fájlmásolás. Ezért írtam egy külön osztályt ami egy szál és azon hozom létre a ProgressMonitorInputStream-t. Viszont a konstruktor első eleme a szülő. Hogyan tudom megadni a főablakomat, mert az alapértelmezetten private?
private sajatfeladat.FoPanel foPanel1;
-
n00n
őstag
Sziasztok!
Van egy egyszerű java projektem. Van benne JFrame, rajta egy JPanelel. Ezen van egy JButton, amire ha rányomok megjelenik egy JDialog. A JDialogon van egy JProgressBar. Amit szeretnék, hogy mikor megjelenik a JDialog kezdje el a fájlt másolni (gondolom külön szálon) és frissítse a JProgressBart. Ötlet, hogy merre induljak el?
Egyelőre itt vagyok:
JDialog:
private int allapot=0;
allapotJelzo.setValue(allapot);
allapotJelzo.setStringPainted(true); -
n00n
őstag
Sziasztok!
Kellene egy kis segítség.
Adott az alábbi kód:
private void fajlbolBeolvas(InputStream fajl) {
Scanner fajlScanner = new Scanner(fajl, "UTF-8");
String sor;
while (fajlScanner.hasNextLine()) {
sor = fajlScanner.nextLine();
}
}Egy fájlból kiolvasok adatokat, és azokat soronként belerakom a sor változóba. Viszont egy sor így néz ki:
Személy neve;1987
Magyarán ott még ketté kellene választanom a ";" jel mentén. Erre van valami ötlet?
-
n00n
őstag
Ismét kellene egy kis segítség:
Adott kettő class közös package-ben:
programGUI és fileMasolas
programGUI.java ködrészlete:
//Progress bar:
JDialog copyModalDialog = new JDialog();
copyModalDialog.setTitle("Mentés másolása folyamatban");
pb = new JProgressBar(0, 100);
pb.setValue(0);
pb.setStringPainted(true);
JPanel panel = new JPanel();
panel.add(pb);
panel.setBorder(BorderFactory.createEmptyBorder(40, 75, 40, 75));
copyModalDialog.setContentPane(panel);
copyModalDialog.setResizable(false);
copyModalDialog.setModal(true);
copyModalDialog.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
copyModalDialog.pack();
copyModalDialog.setLocationRelativeTo(null);
//fájlmásolás szál indítása:
fileMasolas tMasolas = new fileMasolas();
tMasolas.start();
//progress ablak megjelenítése:
copyModalDialog.setVisible(true);fileMasolas.java kód:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package proba;
import java.io.*;
class fileMasolas extends Thread {
public fileMasolas() {
}
public void run() {
File filein = new File("D:/adat.db");
File fileout = new File("D:/adat_new.db");
FileInputStream fin = null;
FileOutputStream fout = null;
long length = filein.length();
long counter = 0;
int r = 0;
byte[] b = new byte[100];
try {
fin = new FileInputStream(filein);
fout = new FileOutputStream(fileout);
while ((r = fin.read(b)) != -1) {
counter += r;
int bar = (int) (100.0 * counter / length);
MentesKeszitoGUI.pb.setValue(bar);
fout.write(b, 0, r);
}
} catch (Exception e) {
System.out.println("Hiba");
}
}
}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. Vagyis eltüntetni a copyModalDialog-ot?
-
n00n
őstag
Szeretnék írni egy fájlmásolást progress barral, viszont nem jön össze. Mikor meghívom a lent látható fileMasolas metódust szépen megjelenik a JGrame, viszont a belseje "átlátszó" és csak azután jelenik meg, hogy végzett az utána következő fájl másolással. Valakinek ötlet, hogy mi nem jó?
private void fileMasolas() {
JFrame frame = new JFrame("Mentés másolása folyamatban");
pb = new JProgressBar(0, 100);
pb.setValue(0);
pb.setStringPainted(true);
JPanel panel = new JPanel();
panel.add(pb);
panel.setBorder(BorderFactory.createEmptyBorder(40, 75, 40, 75));
frame.setContentPane(panel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
File filein = new File("D:/adat.db");
File fileout = new File("D:/adat_new.db");
FileInputStream fin = null;
FileOutputStream fout = null;
long length = filein.length();
long counter = 0;
int r = 0;
byte[] b = new byte[1024];
try {
fin = new FileInputStream(filein);
fout = new FileOutputStream(fileout);
while ((r = fin.read(b)) != -1) {
counter += r;
int bar = (int) (100.0 * counter / length);
pb.setValue(bar);
fout.write(b, 0, r);
}
} catch (Exception e) {
System.out.println("Hiba");
}
} -
n00n
őstag
Sziasztok!
NetBeans 7.2 alatt tevékenykedem. Elkészítettem egy csomagot (funkciok) benne a Funkciok osztállyal, majd egy funkciokgui csomagot, benne a FunkciokGUI osztállyal. Értelemszerűen a második csomagban van a NetBeansben összerakott grafikus felület. Viszont futtatáskor csak a funkciok fut le, a gui nem indul el. Valahogy össze kell kötni?
-
n00n
őstag
Sziasztok!
NetBeanshez van olyan plugin (biztos van, arra vagyok inkább kíváncsi, hogy melyik érdemes használni), amivel grafikus felületen lehet összedobálni az írt alkalmazás GUI-ját?
-
n00n
őstag
Sziasztok!
Elkezdtem Java nyelvvel foglalkozni, van is két könyvem, aminek lassan a végére érek. Szeretnék gyakorolgatni, de valami komolyabb példával. Próbáltam keresni valami olyan tutorialt, ahol lépésről-lépésre írnak egy nagyobb programot, mert szerintem abból lehet igazán tanulni. De sajnos nem jártam eredménnyel. Valakinek esetleg nincs a tarsolyában ilyesmi? Angol nyelv nem probléma. Ha nincs, akkor pedig mondjatok már valami ötletet, hogy milyen programot lenne hasznos megírni egy kezdőnek. Nem szeretem az ilyen cicás-kutyás fantázia dolgokat, szeretem, ha a gyakorlás közelebb áll a valós dolgokhoz.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Apple Watch Sport - ez is csak egy okosóra
- Formula-1 humoros
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- Fizz.hu - vélemények, tapasztalatok
- HiFi műszaki szemmel - sztereó hangrendszerek
- Path of Exile 2
- DIGI kábel TV
- Milyen videókártyát?
- Politika
- Vodafone mobilszolgáltatások
- További aktív témák...
- HP 630 laptop (15,6/i3-G2/4GB/500HDD/Magyar/Windows7)
- GAMER Ryzen 5 3600 / RX 6600 XT 8GB / 16GB DDR4 / 512GB NVME / Beszámítás / Garancia
- Dell Latitude 3490 laptop (14/i3-G7/8GB/128SSD/AkkuX)
- Meta Quest 3 128gb +kiegészítők! (Garanciális)
- Volkswagen Passat Variant 2.0 TDI DSG LED facelift, új vezérlés, sérülésmentes
Állásajánlatok
Cég: Axon Labs Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest