- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Szólánc.
- btz: Internet fejlesztés országosan!
- gban: Ingyen kellene, de tegnapra
- Gurulunk, WAZE?!
- sziku69: Fűzzük össze a szavakat :)
- VoidXs: Tényleg minden játék optimalizálatlan?
- Hieronymus: Három júniusi képem
- Magga: PLEX: multimédia az egész lakásban
Új hozzászólás Aktív témák
-
Ha hozzáadtad a c:\Windows\System32 elérési utat, onnantól kezdve el kell tudni érned a parancssorból a java.exe-t és a javaw.exe-t. Nem írhat olyat, hogy nem találja ezt a programot. Ha ezt írja, akkor vagy nem jól adtad hozzá, vagy nem indítottad újra a parancssort, miután hozzáadtad.
Egyébként nagyon kevés elérési út van nálad a path környezeti változóban. A systemrootnak defaulton ott kéne lennie. Valaki vagy valami "tisztogatást" végzett nálad... -
thboxx
aktív tag
válasz
Superhun #3195 üzenetére
"C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files\PC Connectivity Solution\;C:\Program Files\Android\android-sdk\platform-tools\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Windows Live\Shared"
ezek vannak a path környezeti változóban...
(#3196) gygabor88: kicsit hétköznapibban fejtsd ki kérlek...
Szerk.: hozzáadtam a system32-t a környezeti változókhoz... de semmi
-
skoda12
aktív tag
"Error: could not find or load main class D:\.......jar"
Nem minden jar futtathato. Sot, tipikusan a legtobb jar nem futtathato es valoszinuleg te is ilyet kaptal. A masik lehetoseg, hogy az alkalmazas keszitoje rosszul csomagolta be a programot es nincs beallitva main class a manifestben. Ilyenkor ugyan meg elindithatod a programot, de tudnod kell a main class pontos nevet hozza.
-
dany27
őstag
Üdv!
JTree-vel szeretném megjeleníteni a településeket megyékre lebontva.
Hogy tudom azt elérni hogy ha bent vannak a megyék a fában, és tölteném be a településeket egy fileból akkor tudja hogy melyik megye alá kell beszúrnia az adott települést?
Az megvan hogy hogyan döntöm el hogy melyik megye, csak azt nem hogy ezután hogy tudom megmondani neki hogy na ezt most ide szúrd be szépen...
Van egy telepulesek osztalyom melynek van egy megyeID adat tagja is, ez alapján könnyen megtudom mondani h az adott megyéhez melyik települések tartoznak.Előre is köszi a válaszokat!
-
skoda12
aktív tag
válasz
bucsupeti #3176 üzenetére
"A kérdésem az hogy a felvázolt architektúra szerintetek rendben van? Illetve jó megoldás-e az egyetlen session használata?"
Mint mondtam, a Session inkonzisztens allapotba kerulhet, igy nem erdemes csak egyet hasznalni. Ez a javadocban is le van irva.
A masik, hogy a Session nem thread safe, igy leginkabb a session-per-request megoldast szoktak kovetni. De ez nem azt jelenti, hogy ha egy muvelethez tobb select / insert /akarmi kell, akkor mindegyikhez letre kellene hozni egy sessiont.
A statikus dolgokat felejtsd el, unit tesztelhetetlen. Ritkan van ertelme (konstants, logger, ...), de alapvetoen csak thread safety problemakhoz vezetnek. Jelenleg is tobb kulonbozo metodusod dolgozik egy statikus nem thread safe peldanyon, tehat neked kell gondoskognod rola lockolassal vagy valami mas modon, hogy egyszerre csak egy valaki hasznalja. -
-
bucsupeti
senior tag
válasz
skoda12 #3171 üzenetére
Köszönöm az eddigi válaszokat. Közben megoldódott a dolog egy session.clear() oldotta meg a problémát a tranzakció lezárása után.
"Ez anti-pattern. Mivel desktop approl van szo, gondolom csak egy user hasznalja egyszerre. Boven eleg akkor nyitni uj sessiont, ha az elozo inkonzisztens allapotba kerul."
Az igaz hogy desktop app, de ez miért is vonja maga után hogy "csak egy user használja egyszerre"?
Desktop app, de központi adatbázissal dolgozik. Az alkalmazás pedig a felhasználók gépein található meg.Egyébként nagy baj az ha egyetlen session-t használok a futás alatt?
Az architektúra úgynéz ki, hogy vannak a perzisztens osztályok, ez mellett van egy üzleti logikát megvalósító osztály (UzletiLogika) és van a kliens, ami bármi lehet, jelenleg egy desktop swing GUI.
Az UzletiLogika osztálynak egyetlen statikus adattagja van, ami nem más mint egy Session. Ezen dolgozik az összes metódus. A metódusok a kliens(ek)nek szolgáltatnak adatokat, amik különféle egyszerű és összetett adatszerkezeteket adnak át. A perzisztens osztályok adattagjait alakítják át listákká, vektorokká stb...
Paraméterül azonosítókat kapnak és soha nem adnak vissza perzisztált objektumot.
Így az UzletiLogika osztályban dolgozik csak a Hibernate. A GUI csak meghívja az ottani metódusokat és valamilyen nem perzisztens adatot kap, amit megjelenít.Most már működik a program.
A kérdésem az hogy a felvázolt architektúra szerintetek rendben van? Illetve jó megoldás-e az egyetlen session használata?
-
modder
aktív tag
válasz
bucsupeti #3170 üzenetére
Hogyan törölsz?
Ha simán törlöd a detail entitást, de nem nem frissíted a parent entitás (a másik táblából) Set-jét és nem mergeled (sorry nem vágom pontosan a hibernate-es terminológiát) őt, akkor a hibernate cache úgy érzékelheti, hogy az objektumon nem történt semmi változás (a kapcsolatot csak az egyik oldalról törölted, a parent felől nem), ezért nincs oka újra lekérdezni olyan result setet mégegyszer.Próbáld meg, hogy a parent entitás Set-jéből törlöd a detailt, majd mergeled a parent entitást.
Remélem ez menni fog.
-
MrSealRD
veterán
válasz
bucsupeti #3170 üzenetére
Lehet, hogy nem pont ez kell neked, de amennyire nem látunk a kódból semmit, annyira talán ez is jó lehet: [link]
Egyébként gondold végig.
Mi a jTable adatforrása? Elvileg azon objektumok halmaza( valamilyen kollekció) melyeket a hibernate-en keresztül kezelsz és az adatbázis táblák rekordjainak feleltethetőek meg...Akkor most jön a kérdés...Pontosan honnan is törölted? (Ha a hibernate és a DB látja...) De a jTable nem...
-
skoda12
aktív tag
válasz
bucsupeti #3170 üzenetére
Kod nelkul nehez megmondani, hogy mi a baj, de nem nyelsz el egy catch agban egy exceptiont, ami nincs kiloggolva?
"Új session-t indítok minden egyes lekérdezésre"
Ez anti-pattern. Mivel desktop approl van szo, gondolom csak egy user hasznalja egyszerre. Boven eleg akkor nyitni uj sessiont, ha az elozo inkonzisztens allapotba kerul.
-
bucsupeti
senior tag
Sziasztok!
Adott egy Hibernate-et és MySQL-t használó NetBeans alatt készített alkalmazás GUI-val.
Két táblázat van benne, amiket feltöltök a perzisztens objektumokkal. A második táblázat az első detail táblája, azaz az egyik adattagja (ami Set típusú) tételeit tartalmazza.
A lényeg az hogy ha törlök valamit a detail táblából akkor látom az SQL parancsot (delete) az output ablakban. Az SQL adatbázist megnézve látszik hogy törlődött a rekord, viszont a vizuális komponensben (jTable) nem látszik a frissítés. Természetesen újra feltöltöm a táblát, de nem frissül. Olyan mintha valahol (cache?) ott maradna az adat. Új session-t indítok minden egyes lekérdezésre, flush() és evicat() meg minden van a törlő művelet után, de nem frissül. Az output ablakban látszik hogy a select nem fut le újra, pedig ott van a lekérdezés és debugolva is ellenőriztem végrehajtja a sort, de nincs adatbázis kérés mögötte.
Ha kilépek és újraindítom a progit akkor már minden rendben látszik.Hogy lehet rábírni hogy frissüljön rendben minden? Mi a francért nem frissül?
-
modder
aktív tag
válasz
Superhun #3157 üzenetére
Én nem keverném ezt bele, mert az equals()-nak és a hashCode()-nak az egyedet kell tudnia azonosítania, és nem egyetlen tulajdonságát. Végtelenféle háromszöget lehet ugyanazzal a területtel. Szóval ez ellent mond a Java equals()-ra és hashCode()-ra vonatkozó contractjának.
Nem is adna jó eredményt, mert a terület nagy valószínűséggel Float lesz, amit nem tudsz még javában sem alapból úgy összehasonlítani, hogy mindig jó eredményt kapj, pláne nem az == operátorral:
http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Float.html#equals(java.lang.Object)Nem tudom mire kell itt a HashSet, de én úgy oldanám meg a dolgot memóriahatékonyan, hogy:
1) csinálok egy ArrayList<Haromszog> haromszogek listát
2) csinálok egy másik ArrayList<Float> teruletek listát
3) ahogy generálom a háromszögeket a ciklusban, egy belső ciklusban minden legenerált háromszögre végigmegyek a 'területek' összes elemén és megnézem, hogy benne van-e az új háromszög területe, így:
if(Math.abs( aktualisTerulet - ujHaromszogTerulet) < 0.001f)
benne van
else
nincs benne, hozzáadom a háromszögekhez a háromszöget, és hozzáadom a az ujHaromszogTeruletet a teruletekhezHa pontosabb float egyenlőség vizsgálat kell, ezt találtam neten http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
esetleg gyorsabban futó megoldást is találhatsz, ha valamilyen orderes listet használsz pl http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Collections.html#binarySearch(java.util.List, java.lang.Object, java.util.Comparator) -vel keresel a területek között
-
-
kispx
addikt
Magyarul le van itt írva. A második bekezdés az érdekes, mivel neked már fent van a jdk.
"Windows operációs rendszeren parancssorból, vagy .bat állományból:
SET PATH=%PATH%;c:\Program Files\java\jdk1.5.0\bin ; ."Résznél természeten neked más elérési útvonalad lesz a jdk bin mappájához.
-
kispx
addikt
parancssorban próbáld meg a program mappájában kiadni:
java -jar fájlneve.jarDe előszór a PATH változót állítsd be. (Feltéve ha még a java.exe elérési útvonala nincs benne)
-
thboxx
aktív tag
Hali!
Nem tudom, jó helyre írok-é'
, de hátha... Szóval van egy .jar kiterjesztésű kis alkalmazásom, amit elvileg katt2x aztán megy, mint egy kis szutyok egy exe-s ősgame... de nálam nem történik semmi. Ill. pillanatra beugrik a parancssor, aztán ahogy jött, úgy el is tűnik... Legújabb JDK van fent a gépen... Már a hajamat tépem tőle...
Valaki tudna nekem segíteni?
Üdv.
-
válasz
DreaD88 #3153 üzenetére
Definiáld felül a háromszög osztályban az Object ősosztály equals metódusát, és akkor adjon vissza igazat, ha a két háromszög területe megegyezik. Így amikor hozzáadogatod a háromszögeket a HashSet-hez, azok nem kerülnek bele a halmazba, amelyeknek a területe már szerepel.
Kódban ez vhogy így néz ki (nálam most a háromszög osztályt Triangle-nek hívják):
@Override
public boolean equals(Object o) {
if (o instanceof Triangle) {
Triangle t = (Triangle) o;
if (t.getArea() == getArea()) {
return true;
}
}
return false;
}
// A hashCode metódust is illik felüldefiniálni,
// ha az equals-t felüldefiniálod. Az a lényeg,
// hogy egyezzen meg annak a két objektumnak a hashkódja,
// amelyekre az equals igazat ad vissza.
@Override
public int hashCode() {
return (int) getArea(); // ezt lehet máshogy is, de a célnak megfelel
} -
DreaD88
tag
Köszi mindkettőtöknek, nézem az új infókkal...
Am a sorrend lényegtelen, mert generáltam 15 db abc oldalú háromszöget, mindegyiknek külön külön véletlen az oldalhossza és heron képlet alapján kiszámolom a területüket, ez meg is van, már csak annyi van hátra, hogy összehasonlítom a generált háromszögek területét, hogy ne legyen 2 egyforma.
-
Lacces
őstag
válasz
DreaD88 #3153 üzenetére
Én úgy tudom, hogy alapból csak egyet is rak bele. És ezért lassú az elem beillesztése, de gyors az elem visszaadása. De mindig van tőlem okosabb a fórumban, érdemes rájuk várni
Amúgy itt találsz példákat a hashset műveletekhez, ha lejebb mész, akkor látsz még további témákat, remove, add, select stb.
Van a
Set h = new HashSet();
HashSet<Integer> h = new HashSet() típusú is -
Karma
félisten
válasz
DreaD88 #3153 üzenetére
Ha a "hashset-be adom meg" alatt azt érted, hogy létrehozol egy HashSetet, konstruktorban átadva a már meglévő kollekciódat; a "mindenből csak egyet ad vissza" alatt meg iterációt (foreach vagy manuális iteráció, mindegy) akkor igaz.
Azzal a kitétellel, hogy az elemek sorrendje összezilálódhat, mert semmi garancia nincs. Ha azt akarod, hogy a sorrend is megmaradjon, LinkedHashSetet használj.
-
DreaD88
tag
Helo!
Nemrég kezdtem javaban programozni és a hashset-el van most problémám...
Valaki le tudná írni, hogy kell használni?Jól tudom azt, hogy ha van mondjuk egy kollekcióm es hashset-be adom meg őket, akkor a hashset kiszűri az azonos elemeket és mindenből csak egyet ad vissza?
-
_kovi_
aktív tag
Sziasztok!
Segítsetek nekem légyszi. Nem bírom beállítani XP Pro-n a CLASSPATH értéket.
Hogy SciTE-vel tudjak fordítani.
Netbeans-t is használok, de a SciTE is megy mellett párhuzamosan.Egyáltalán mit kell oda beállítani, milyen értéket a JAVA könyvtár bin könyvtárát?
Próbáltam már mindent, amit a google-val lehet keresni, de nem működik...
Tesztre a CMD-ben a javac-ot írom be. CMD-ben a Java parancs az rendben lefut 1 oldalnyi szöveggel.Köszi,
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Autós topik látogatók beszélgetős, offolós topikja
- Ingatlanos topic!
- HiFi műszaki szemmel - sztereó hangrendszerek
- ASUS routerek
- Anglia - élmények, tapasztalatok
- Google Pixel topik
- Vezetékes FEJhallgatók
- Milyen TV-t vegyek?
- Google Pixel 7a - venni vagy nem venni?
- További aktív témák...
- Szép! Lenovo Thinkpad T14s G2 Üzleti "Golyóálló" Laptop 14" -60% i5-1135G7 4Mag 16GB /512GB FHD IPS
- Samsung Q80T 55" QLED - 4K 120Hz VRR / FreeSync / HDMI 2.1
- ÚJ HP ENVY 17 Nagyképernyős "Kis Gamer" Laptop -45% 17,3" Brutál i7-13700H 16/1TB Iris Xe FHD IPS
- Legion Go 8APU1
- Gamer PC kompromisszumokkal, de garanciával RX 7800 XT + Ryzen 5 3600 32Gb-DDR4
- Creative Sound BlasterX G5 (70SB170000000) (Sound Blaster) (DAC)
- IPhone 13 Mini 128GB Bontatlan! ÚJ! Független! 12 hó jótállás!
- LG OLED Televíziók: FRISS SZÁLLÍTMÁNY -30%
- BESZÁMÍTÁS! Acer Predator Helios 300 Gamer notebook - i7 10750H 16GB DDR4 1TB SSD RTX 2060 6GB WIN10
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB DDR5 RTX 4070Ti Super GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest