- Magga: PLEX: multimédia az egész lakásban
- eBay-es kütyük kis pénzért
- Mr. Y: Motoros sztorik #06
- sziku69: Szólánc.
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- NASsoljunk: ZyXEL NSA-310 és az FFP
- Őskoczka
- sziku69: Fűzzük össze a szavakat :)
- gban: Ingyen kellene, de tegnapra
Új hozzászólás Aktív témák
-
Oppenheimer
nagyúr
Fogtam magam, leklónoztam egy projektet githubról, átírtam 1-2 dolgot, hogy nekem jó legyen, és azóta boldog vagyok.
Persze azt fel kellett hagynom, hogy Eclipselinket használjak Spring mellé, Hibernatetel minden megy mint a karikacsapás.
(#7154) Aethelstone: Most örülök, hogy működik RESOURCE_LOCAL-lal, tudok EntityManagert injektálni @PersistenceContext-tel, szóval mindent megkaptam amit akartam. Ha kicsit több önbizalmam lesz, átállok, de kicsit haladni is szeretnék a projekttel.
-
Oppenheimer
nagyúr
válasz
Oppenheimer #7149 üzenetére
Fejlemény. Na mondom kipróbálok másik application servert, legyen Glassfish 4. Arra nem tudtam deployolni az alkalmazást:
cannot Deploy MovieTimeProject
deploy is failing=Error occurred during deployment: Exception while preparing the app : The persistence-context-ref-name [com.movietime.repositories.ActorRepository/em] in module [MovieTimeProject] resolves to a persistence unit called [MovieTime] which is of type RESOURCE_LOCAL. Only persistence units with transaction type JTA can be used as a container managed entity manager. Please verify your application.. Please see server.log for more details.Akkor mégiscsak JTA típusú tranzakció kell. Fasza.
-
Oppenheimer
nagyúr
-
Oppenheimer
nagyúr
válasz
Oppenheimer #7147 üzenetére
Az a baj, hogy hiába gúglizok, csak olyan találatok vannak, amikor JPQL-ben a tábla nevét használták az entitás helyett, de nálam nem így van. Próbáltam azt is, hogy a
<exclude-unlisted-classes>false</exclude-unlisted-classes>
sort kivettem a persistence.xml-ből és explicit felsoroltam az osztályokat, ugyan ez az error volt. -
Oppenheimer
nagyúr
-
Oppenheimer
nagyúr
Na újra itt vagyok. Kicsit rendbeszedtem a config fájlokat, most a következőképpen néznek ki a dolgok:
web.xml, spring-servlet.xml, persistence.xml
A HelloController-ben kérek egy lekérdezést az adatbázisból a MovieService-en keresztük a MovieRepository-tól, és az em.createQuery exceptiont dob.
Nem értem miért, mert a LocalContainerEntityManagerFactoryBean-ben meg van adva a "packagesToScan" property "com.movietime.entities"-nek, és a persistence.xml-ben is ott van, hogy
<exclude-unlisted-classes>false</exclude-unlisted-classes>.Azt mondja, hogy
"[14, 19] The abstract schema type 'Movie' is unknown.
[28, 35] The state field path 'm.title' cannot be resolved to a valid type."miközben az IDE képes volt rájönni, hogy mi ez a Movie.
Miért ilyen nehéz rávenni a springet és a JPA-t, hogy működjön?
-
Oppenheimer
nagyúr
válasz
Lortech #7111 üzenetére
Már elindultam abba az irányba, hogy persistence.xml-t kitöröltem, és helyette a spring-servlet.xml-ben configolok, de ekkor egyrészt sír az IDE, hogy hiányzik a persistence.xml, másrészt meg nem tudom, hogy ez esetben hogyan férek hozzá a PersistenceContexthez, vagy azzal ekvivalens funkcióhoz. Ehhez dobna valaki egy leírást?
Most így néz ki a spring-servlet.xml.
(#7112) jetarko:
Jaja, azt benéztem, de eredetileg azért volt ott a .controller, mert azt hittem, hogy csak @Controller osztályokra van szüksége. -
Oppenheimer
nagyúr
válasz
Oppenheimer #7109 üzenetére
Rossz sort másoltam ki. Ez az error.
-
Oppenheimer
nagyúr
válasz
jetarko #7103 üzenetére
(#7103) jetarko:
Itt szerintem fel kell sorolni azokat a packageket amikben @componentekre hivatkozol. Pl dao(repo) service csomagok is.Felsorolhatom, de nem kéne neki rekurzívan bejárni a packageket?
A spring xml-ben emf-t adtál meg, a repoban meg em-re hivatkozol.
Tutorialokból raktam össze. A célom az lenne, hogy @PersistenceContext annotációval be tudjak injektálni EntityManagert, és azt használni. Egyébként itt ezt írja: Spring injects @PersistenceContext into Spring components on its own. In order to do so, applications need to be have access to an EntityManagerFactory bean. Gondolom ezért tettek a tutorialban a spring-servlet.xml-be LocalContainerEntityManagerFactoryBean-t.
Ha ehhez a funkcionalitáshoz, amit írtam, valami más kéne a spring-servlet.xml-be, nyugodtan szóljatok.Az xml fájlokban miért van annyi kommentezés?
Azok olyan dolgok amik most nem kellenek, de később fognak. Először működjenek legalább az alapok.
(#7104) Lortech:
Beírtam a persistence.xml-be az alábbi sort az alapján amit floatr linkelt:
<jta-data-source>java:/DefaultDS</jta-data-source>de deployment közben továbbra is error van:
13:57:38,405 INFO [org.jboss.as.server] (ServerService Thread Pool -- 28) JBAS018559: Deployed "MovieTimeProject.war" (runtime-name : "MovieTimeProject.war")
(#7105) floatr:
Ahogy fent is írtam, kipróbáltam, hogy beállítom a jta-data-source-ot, de nem jó. Később szeretném ha az adatbázis 2db clusterezett MySQL instance lenne, köztük egy load balancerrel, és ehhez gondolom nem elég jó a RESOURCE_LOCAL transaction-type. Egyébként Wildfly 8.2-t akarok használni, nem Tomcatet.
Azt mondod, ha kidobnám a persistence.xml-t a kukába, és helyette az általad adott kóddal configolok a spring-servlet.xml-ben, akkor működőképes lesz a cucc? Ha később JTA tranzakciókra kell átállnom, akkor is megoldható lesz így?
-
Oppenheimer
nagyúr
Betenném ide is életem első stackoverflow kérdését, hátha valaki tud segíteni.
-
Oppenheimer
nagyúr
válasz
WonderCSabo #6791 üzenetére
dede, azóta rábukkantam. milyen jó hogy 1 éve felvettem egy JPQL-es szabvál tárgyat, és nem végeztem el / nem foglalkoztam vele.
-
Oppenheimer
nagyúr
válasz
Cathfaern #6788 üzenetére
igen, 2 indexstruktúra fel van építve az első és második szavak alapján, és minden begépelt betű után indít egy új lekérdezést mindkét indexstruktúrát kihasználva. arra voltam kíváncsi, hogy ilyen sebességgel ez csak in memory database-el valósítható meg, vagy hagyományos diszkrezidens adatbázis is lehet ilyen gyors? de ez csak egy mellékvágány volt, csapongtak a gondolataim, nem emiatt írtam ide eredetileg.
-
Oppenheimer
nagyúr
indexelve van a reláció városnév alapján, tehát elvileg log(bi) + c blokkművelettel meg lehetne valósítani a kiolvasást, ha pl minden 'bud' - dal kezdődő településnév érdekel, ahol bi az indexállomány blokkjainak száma, c pedig a bud-dal kezdődő rekordok száma. szeretném valahogy úgy megfogalmazni a lekérdezést, hogy ilyen sebességgel történjen, olyasmire gondoltam, hogy select * from hurka where city >= 'bud' and city < 'bue'.
-
Oppenheimer
nagyúr
válasz
Oppenheimer #6784 üzenetére
erre már meg magam is tudom a megoldást. köszönöm a lehetőséget, itt mindig megvilágosodok
-
Oppenheimer
nagyúr
válasz
Oppenheimer #6783 üzenetére
"Hogyan csinálják pl IMDB-nél azt, hogy beírom egy film címének egy részét, és kvázi azonnal mutatja azt a szövegrészletet tartalmazó filmcímek listáját? IMDB-t használnak (In Memory Database)?"
Most direkt kipróbáltam. Trükkösek, ez csak akkor működik, ha a filmcím első két szavából kezdem el valamelyiket gépelni.
Módosítom a kérdésem: JPA-val meg lehet oldani, hogy egy attribútum értékének csak az elejének egy része ismert, és a szelekció azokat a rekordokat adja vissza, amik az adott attribútumban így kezdődnek? Az is elég, segítség lenne, ha valaki megmondaná milyen kulcsszavakkal érdemes ilyen probléma esetén keresni. Ilyenekkel próbáltam, hogy:
- jpa select partial attribute
- jpa select by partially known attributede nem találtam semmi használhatót.
-
Oppenheimer
nagyúr
JPA-val lehet olyat csinálni, hogy egy táblában úgy keresek ki rekordokat, hogy a szelekcióban 1 attribútum van, és annak az értékének csak egy része ismert? Mondjuk adott egy városnév egy része, pl 'bud', és minden rekordot szeretnék megkapni, ahol a városnévben van olyan rész, hogy 'bud'. Próbáltam rákeresni neten, de angolul nem tudtam a megfelelő kulcsszavakat kitalálni ehhez.
Persze meg lehetne úgy oldani, hogy minden rekordot kiolvasok, és végigiterálva a listán megnézem, hogy mire illeszkedik ez a feltétel, de ha a JPA-ban lenne ilyen, akkor az biztos erőforrástakarékosabb megoldás lenne.
Mondjuk ahhoz, hogy ez működjön, minden adatbázisrekordot be kell olvasni ígyis-úgyis, szóval háttértár műveleteken a JPA-s megoldás sem tudna spórolni, a memóriaműveletek költsége meg ehhez képest elenyésző.
Hogyan csinálják pl IMDB-nél azt, hogy beírom egy film címének egy részét, és kvázi azonnal mutatja azt a szövegrészletet tartalmazó filmcímek listáját? IMDB-t használnak (In Memory Database)?
-
Oppenheimer
nagyúr
Ha TreeSetet szeretném használni úgy, hogy a beszúráson módosítok, és az elemszámát korlátozom, akkor mi a szebb megoldás?
a) Leszármazok belőle
b) Tagváltozóként van bennem egy belőleVégülis tagváltozós megoldás lesz, csak pár funkcióját használom saját függvényekkel, és a többi jobb ha rejtve marad.
-
Oppenheimer
nagyúr
válasz
beleszólok #6490 üzenetére
Ettől nem kell tartani.
A programban egy keresőalgoritmus implementálása és tesztelése volt a lényeg egyébként is.
-
Oppenheimer
nagyúr
válasz
Aethelstone #6483 üzenetére
Másból nem kellett leszármaznia, csak egy interfacet valósít meg, így kézenfekvõnek tūnt, hogy Threadbôl származzon.
-
Oppenheimer
nagyúr
válasz
beleszólok #6480 üzenetére
Próbáltam azt is, hogy létrehozok egy akármilyen intet, utána incrementálom és oda rakom a breakpointot, mert ott mindenképp meg kell állnia. Mindezt a numberOfStays előtt. Megpróbálom azt is amit mondasz.
Most megállt a breakpointnál, simán user error volt. F8-at nyomtam F9 helyett.
(IntellijIdea)
-
Oppenheimer
nagyúr
Egy kis threading problémám van.
Van egy osztály, leszármazik a Threadből, Agent a neve. Csinálok belőle egy példányt, beállítom a fieldeket és elindítom a szálat. Így néz ki a kód:
Viszont mintha nem indulna el a run, mert nem áll meg ennél a breakpointnál a program:
Breakpointok susped policy-jénél be van állítva, hogy minden száll megálljon, ha breakpointhoz ér a program counter.
-
Oppenheimer
nagyúr
domain wat? ha magasabb szintű nyelv, akkor backend developerként képzeltem volna magam el, a szükséges framework-ök elsajátításával. ha cpp, akkor meg pont az a gond, hogyha beletanulok pl videó dekóderekbe, meg a winapiba nagyon mélyen, és munkahelyet akarok váltani, akkor kb esélytelen olyan helyet találni, ahol ezt a specifikus tudást újrahasznosíthatom.
-
Oppenheimer
nagyúr
válasz
Aethelstone #6441 üzenetére
Én azért féltem a javat. Még mindig keresem a helyem a világban, lassan ki kéne találnom mi érdekel igazán. Eddig java, dotnet, cpp volt a sorrend, de állandóan változott. Most mégképlékenyebb lett.
-
Oppenheimer
nagyúr
válasz
pokerecske1 #5449 üzenetére
Ejj, ezt nem is néztem meg. Nem semmi a tanárnő.
-
Oppenheimer
nagyúr
válasz
Lortech #5447 üzenetére
Nalunk a bevezetes a szamitaselmeletbe 1-2 tárgyak alapozótárgyak voltak a kódolástechnikához és algoritmuselmelethez, ahol kő keményen olyan matek van, amit az informatikában alkalmaznak. De bsz1-2-nel is Kitért az oktató a különböző alkalmazasaira az tanult dolognak. Analízis 1-2 meg a jelek es rendszerek es szabalyozastechnika targyaknak az alapozó tárgyai. Ezek inkabb a villamosmernokoknek valo dolgok... Szerencsere a 2 targy egybe lesz vonva az uj tantervben. Adatbazisok targyat kifelejtettem, az az algoritmuselmelet utan jon, es ott az adatbazisok matematikai alapjait tanuljuk meg.
Ma pont keszultem algel vizsgara, es neztem a felvett eloadas videokat. Hashről volt szó, és mondta a tanárnő, hogyha a hashtáblába beszúrásnál linearis próbát alkalmazunk, akkor azert megyunk az indexeken negativ irányba, mert akkor a vegen 0-hoz kell hasonlitani, es a compilerek is minden osszehasonlitast 0-val valo osszehasonlitasra vezetnek le. Mig ha pozitiv iranyba mennenk, akkor a vegen M-1-gyel kene összehasonlítani. Valami ilyesmi volt, de a lenyeg, hogy nagyot neztem, hogy a matematikus tanárnő, hogy vagja a processzorok elvi mukodeset
nem vartam volna tole el.
Bocs a random ékezetek miatt, mobilrol irtam es neha hasznaltam a keyboard suggestion-jeit, neha meg nem.
-
Oppenheimer
nagyúr
BME-n nem vészes a fizika, kis készüléssel simán hozható (nekem megajánlott 5 lett mindkettő). Viszont a programozás oktatása így van felépítve:
Első félév: prog alapjai 1 a C-n keresztül bevezet a programozásba. Heti 1 előadás, 1 gyakorlat, ahol papíron kódolunk és 1 labor, ahol gépen kódolunk. Félév végén laborból le kell adni egy legalább 500 soros házit.
Második félév: ugyan ez a felépítés, csak C++, és az OOP-be vezetnek be.
Harmadik félév: itt szoftvertechnológia van, ahol az OOP-t tovább mélyítik, és a "software process"-ről van szó. Itt igazából nagy szoftverek fejlesztésénél használatos modellezési elvekről és a fejlesztés folyamatáról tanítanak. Tesznek említést a coding standardról és a verziókezelőkről is. Ennek a kurzusnak a keretében van 4 Java előadás, ahol leadnak annyi anyagot, ami egy rendes kurzust kitenne, de ezt szoftverlabor 3-mon be is gyakoroljuk. Itt is van nagyházi persze.
Negyedik félév: szoftvertechnikák. C#, tervezési minták, és nem tudok nyilatkozni, mert nem jártam előadásra, és ZH-ig nagyjábból ennyi említésre méltó volt.
Utolsó előtti előadáson Charaff Hassan nagyon érdekes témákról beszélt. Kitekintés a jövőbe, cloud, nativ kliensek vs html5 appok, internet of things. Ebben a félévben van szoftlab 4, ahol 4-5 fős csapatokra oszlik az évfolyam és mindenkinek végig kell mennie egy RUP szoftver processzen, aminek az eredménye párszáz oldal doksi és egy játék. Itt értelemszerűen rá vagyunk kényszerülve verziókezelő használatára. Mi git-eztünk. A git miatt váltottam eclipse-ről Ideára, mert eclipsen nem tudtam beállítani a gitet.
5. félévben grafika lesz, amin C++ és opengl van. 5 játékot/programot adnak ki, ebből legalább 3-mat kell elkészíteni, de megajánlott jár, ha asszem legalább 4-et leadsz és megvéded őket.
A legnagyobb probléma itt az szerintem, hogy a többi tárgy mellett nincs elég idő, hogy az ember belemélyedjen a leadandó nagyházikba, nekem eddig mindig kapkodni kellett a végén, amiből gányolás lett és szarul strukturált program.
Ősztől amúgy új tanterv lesz az elsősöknek, irigylem őket miatta. Villanyos maradvány tárgyak egymásba konvergálódnak, amit nagyon hasznosnak tartok.
(#5439) axioma: A mérnök informatika kifejezésben a mérnök nem azt jelenti, hogy asseblyben a biteket baszogatja.
BTW ma volt méréslabor ellenörző mérés, ahol oszciloszkópos barmolás mellett assemblyzni is kellett. Na az ilyen tárgyaknak nem sok keresnivalójuk a mérnök infón. szerencsére nem ez dominál.
-
Oppenheimer
nagyúr
válasz
WonderCSabo #5433 üzenetére
+1. En az egyetemen tanultam meg "programozni". Azert teszem idézőjelbe, mert még hurka vagyok.
-
Oppenheimer
nagyúr
válasz
Aethelstone #5422 üzenetére
Effective java
-
Oppenheimer
nagyúr
-
Oppenheimer
nagyúr
válasz
Aethelstone #5410 üzenetére
Mindkettő téma volt. Amúgy mondasz példát ilyen javas hard real time rendszerre? Kíváncsi lennék hol alkalmazzák.
-
Oppenheimer
nagyúr
válasz
WonderCSabo #5407 üzenetére
Azt inkább tudományos szimulációknál és kutatásoknál használják szvsz.
-
Oppenheimer
nagyúr
válasz
Aethelstone #5405 üzenetére
En azert megmaradok a c/c++ban fejlesztett repulok mellett
nem hiaba nem tört be a java azokra a területekre ahol szamit a hatékonyság.
-
Oppenheimer
nagyúr
válasz
Aethelstone #5402 üzenetére
Kíváncsi lennék, hogy repülő vezérlésében mit írnak meg Java-ban, amikor ott minden hard real time kell jegyen....
Amúgy jók ezek a videók, kár, hogy nincs több ilyen. Megnéznék egy visszavágást az ms-től.
-
Oppenheimer
nagyúr
Ezt jottem linkelni, de megelőztél. Szerintem nagyon sokat tett a Google a Java-ért azzal, hogy tobb, mint 1 milliárd okostelefonra Java a fő programozási nyelv. Nem tudom miert faj az Oraclenek egy masik api implementáció. (jó tudom, készülékenként részesedést a bevetelbol).
Ezzel a ítélettel hosszu tavon mit veszíthet a szakma?
-
Oppenheimer
nagyúr
Lesz mellélövés, a tündék 50% eséllyel elkerülik a lövedékeket.
(#5158) Karma: iskolai feladat, és pont ez volt a cél, hogy ne ismerjen mindenki mindenkit, és ne egy valaki döntsön mindenről. Egyébként itt a feladatkiírás:
A két torony
A gonosz emberek, tündék, törpök és hobbitok szövetséget kötnek, hogy elpusztítsák az Egy Gyűrűt a Végzet Hegyénél. Szerencsére csak Mordor földjén keresztül tudnak eljutni a hegyhez, így jóságos Szarumánnak lehetősége van védelmi tornyokat építeni, hogy segítsen megvédeni Szauron hatalmát. A játék célja annak megakadályozása, hogy a Gyűrű szövetségének tagjai közül bárki is eljusson a Végzet Hegyéhez. Egy ellenség akkor pusztul el, ha összességében megfelelő mértékű sebzést kap a tornyokból származó lövedékektől. A tornyok építéséhez Szarumánnak a varázserejét kell használnia. Szarumán akkor tud tornyot építeni, ha megfelelő mennyiségű varázsereje van hozzá. A varázsereje minden egyes elpusztított ember, tünde, törp vagy hobbit után bizonyos mértékben növekszik.
A Gyűrű szövetségének tagjai különböző utakon juthatnak el a Végzet Hegyéhez. Az utakról nem térhetnek le. Szarumán az utakra nem tud tornyot építeni, csak az utak mellé. Az utakra azonban tehet akadályokat, amik az akadály területén lassítják az ellenség haladását. A tornyoknak van egy adott hatótávolsága és tüzelési gyakorisága. Szarumán a varázserejét arra is használhatja, hogy a tornyokat és akadályokat különböző varázskövekkel ruházza fel. A varázsköveknek több fajtája is létezik, és különböző hatásúak lehetnek. Egyes kövek növelhetik a tornyok hatótávolságát vagy tüzelési gyakoriságát, más kövek egy-egy típusú ellenfél esetén megnövelik a lövedékek sebzési erejét.A játék során az ellenségek folyamatosan jönnek. A játék elején ritkábban, később gyakrabban és nagyobb csoportokban, azonban számuk véges, előbb-utóbb elfogynak. A játék akkor ér véget, ha egy ellenség eljut a Végzet Hegyéhez, vagy ha már sikerült az összes ellenséget kiirtani. Az első esetben Szauron és Szarumán megsemmisül, utóbbi esetben fényes győzelmet aratnak és örökké uralni fogják a világot.
-
Oppenheimer
nagyúr
válasz
Oppenheimer #5138 üzenetére
Most eszembejutott az hogy az entitynek lehetne tobb dodamage metódusa es mindegyik torony a magához valót hivja meg. Ez mennyivel jobb/rosszabb, mint a jelenlegi?
-
Oppenheimer
nagyúr
Nekem most egy nem szorosan Javához kapcsolódó, inkább általában vett objektumorientált tervezéshez kapcsolódó kérdésem lenne.
Tower Defense játékot tervezünk.
Van egy absztrakt Tower osztályom és ebből leszarmazik 3 különféle Tower.
Van egy absztakt entity osztály, amibol meg leszarmaznak a különféle ellenségek.KRITERIUM: Minden toronynak eltérő mennyiséggel kell sebeznie a különböző típusú ellenségeket.
Ugy van megtervezve a játék, hogy a tornyok ismerik a hatósugarukban lévő ellenségeket, es loveskor az egyiknek a doDamage metódusát hivja meg.
Hogyan lehetne megvalósítani a kritériumot getType() hivas nelkul? Most kulon kulcs-ertek parokban van tarolva a tornyokban, hogy mely tipusu ellenségeknek mely erteket kell átadni a doDamage metodusban. Ez nem valami szep megoldas, szeretném polimorfizmus segítségével megoldani, de nem tudom, hogy lehetséges.
-
Oppenheimer
nagyúr
Én beleegyeztem a reklámokba, de amint jön egy, teszem is rá a spam szűrőt. De talán nem is kötelező azokat bepipálni, csak elég megcsinálni a swipe mozdulatot annál a csúszkánál. Nekem nem esett le időben, hogy miért nem tudok a Regisztráció befejezésére kattintani, ezért pipáltam ki mindent, és csak utána láttam meg a csúszkát. Aztán már lusta voltam kivenni a pipát.
CV-t nem töltöttem fel. Nem hinném, hogy akkora guru lennék másodéves egyetemistaként hogy állásajánlatot kapjak tőlük.
Egyébként már Rájöttem hogy kell a master-slave viszonyt kezelni.
-
Oppenheimer
nagyúr
Játszik valaki bitfectiont?
onJoin eventet nem értem hogy kell kezelni. onEvent metódusból kell visszatérnie a robotnak GameEvent.IDLE-vel a következő körben, ha azt akarom, hogy slave legyen?
-
Oppenheimer
nagyúr
Mi az az elv amiért nem használsz netbeanst? Én eclipse-es vagyok, de van hogy IDE flame warba kerülök a netbeanses haverommal, és egyikünk se tud értelmes érveket felhozni.
Azt észrevettem, hogy a tapasztalt java fejlesztők kerülik a netbeanst, helyette intellij ideát, vagy eclipset használnak, de a miértre nem tudom a választ.
-
Oppenheimer
nagyúr
válasz
Spam123 #4787 üzenetére
Most azért kicsit ferdítesz, mert ott volt a szoftlab 3. Az azért elég sok gyakorlás volt, láttam te is mikor írtad a házid, itt kértél segítséget. Szóval azt nem mondhatjuk, hogy nem volt gyakorlat (ugyanis volt labor, ahol kötelező volt gyakorolni (+ nagyházi)) és nem volt leadva elméletben az anyag (ott van benne a diában).
Azzal sem értek egyet, hogy csak magolni kell. Ide pont, hogy ész kell, hogy tudd használni azt amit beseggeltél, és ne csusszanj át az ilyen részletek felett. Most már egyébként beugrott, hogy nem csak a dián szerepel, hogy referencia íródik ki a 2. alkalomtól, hanem el is magyarázta előadáson. Szerintem megjegyezni könnyű, mert tök logikus, de az, hogy ilyen helyzetben az ember odafigyeljen rá, az már sokkal nehezebb, ergo itt pont ész kell.
Azzal egyetértek, hogy Javának több járna 4 előadásnál, heti 1 labornál és egy nagyházinál, de szoftlab 4-en is lesz egy kis Java, és ha olyan szakirányra mész, akkor még találkozol vele. A 2014-ben felvettek szerencsések lesznek, mert nekik már új tanterv lesz amiben szerepel programozás alapjai 3, ahol Javát tanítanak majd.
Holnap megmutatom a munkahelyemen a Java kódereknek a feladatot.
-
Oppenheimer
nagyúr
válasz
WonderCSabo #4785 üzenetére
Ne gratulálj, én 7-én vizsgáztam és előtte pár nappal tudtam meg ezt, de csak azért, mert korábbi vizsgában volt ilyen.
Se diából, se tapasztalatból nem emlékeztem volna ilyenre.
-
Oppenheimer
nagyúr
válasz
Spam123 #4783 üzenetére
Korábbi vizsgákból. Ha idén lett volna ez a vizsgafeladat, biztos nem tudom megcsinálni, mert OOS-en benéztem volna, de ha valaki ezt tudja, akkor onnantól megoldható. Tényleg szó szerint kell amúgy tudni a diákat, hogy az ember átmenjen, ennél a feladatnál szerintem erre kellett (volna) visszaemlékezni a hallgatóknak:
Ami a tapasztalt java kódereket illeti, szerintem csak az tudja megoldani direkt rákészülés nélkül, aki nagyon sokat szerializált.
-
Oppenheimer
nagyúr
válasz
Spam123 #4754 üzenetére
Ez elég triviális. Mondjuk 4-es lettem ebből a tárgyból, mert felkészültem rendesen, de itt csak annyit kell tudni, hogy static és transient dolgok nem szerializálódnak, és ha nem zárják be az ObjectOutputStreamet, akkor a következő kiírás nem írja felül az előzőt. Persze ha nem készültem volna fel a vizsgára, én se tudnám, szóval lehet hogy tényleg nehéz.
-
Oppenheimer
nagyúr
válasz
WonderCSabo #4603 üzenetére
De. Megadod a mappát, az Acrobat meg csinál belőle egy pdf-et amiben a hivatkozások is működnek.
-
Oppenheimer
nagyúr
válasz
Oppenheimer #4553 üzenetére
Lehet, hogy Focus traversal policyt kene allitanom? Valahogy mindig a középső panelt kene Fókuszban tartani, es akkor talán tudnek mozogni az űrhajóval. Ezt hogy lehet megcsinálni?
-
Oppenheimer
nagyúr
válasz
Oppenheimer #4548 üzenetére
Erre valaki? Valami iránymutatás is nagy segítség lenne.
-
Oppenheimer
nagyúr
Előbb rosszul indultam neki az egész gombos mókának. Most újrakezdtem. A GameArea osztály megvalósítja a Runnable interfacet, és a run metódusában 20ms-onként meghívogatja a LeftPanel doJob metódusát. Mikor elindul a program, akkor egyből elindul a GameArea szállja is, ezért a LeftPanel threadRunning attribútumát true-val inicializálom. (Később majd hozzáadok egy start gombot, amire az első gombnyomás után setEnabled(false) metódust meghívom és elindítja a GameArea szállját, de ezt majd csak akkor, ha pause/resume működik.)
Akkor jöjjön a kód:
public class LeftPanel extends JPanel implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
private JButton pause;
private boolean threadRunning;
public LeftPanel () {
threadRunning = true;
pause = new JButton();
pause.setBackground(Color.CYAN);
pause.addActionListener(this);
pause.setText("Pause");
pause.setVisible(true);
this.add(pause);
setFocusable(true);
pause.setFocusable(true);
}
public synchronized void doJob () throws InterruptedException {
while (!threadRunning) {
pause.setText("Resume");
wait();
}
pause.setText("Pause");
notify();
}
public void actionPerformed(ActionEvent ae) {
threadRunning = !threadRunning;
}
}Most olyat produkál, hogyha rányomok a gombra, akkor a Pauseról Resume feliratra vált, és megállnak az ellenséges űrhajók. Újbóli kattintgatásra marad a Resume felirat a gombon, és nem folytatódik a játék. Természetesen én a saját űrhajómmal már az elején se tudok mozogni. Valaki tudja erre a 2 problémára a megoldást?
Kiegészítésként itt a GameArea run() metódusa:
public void run() {
long startTime = System.currentTimeMillis();
long beforeTime = startTime;
try {
while (!Finished) {
repaint();
animator.animationCycle();
rightPanel.refresh(player.getHealth(), player.getBaseHealth(), player.hasArmor());
leftPanel.doJob();
//MEGCSINÁLNI A JÁTÉKMECHANIKÁT
//Thread.sleep(20 - (System.currentTimeMillis() - beforeTime));
Thread.sleep(19);
beforeTime = System.currentTimeMillis();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
} -
Oppenheimer
nagyúr
válasz
M_AND_Ms #4543 üzenetére
Az újabb problémára esetleg tudod a megoldást? Szerintem a focus-szal lesz a baj. Beállítottam a gombot, a középső és a bal oldali panelt is focusablere, így mikor elindul a játék és elkezdem nyomogatni a spacet, akkor a gombra nincs hatással, de sajnos az űrhajót se tudom mozgatni. Ha egyszer rákattintok a pause-ra, akkor utána bárhova kattintok, a space lenyomására mindig a gomb fog reagálni.
-
Oppenheimer
nagyúr
válasz
Oppenheimer #4541 üzenetére
Lehet, hogy ezért van?
panelLeft = new LeftPanel(panelMiddle);
panelMiddle = new GameArea(panelLeft, panelRight);hmmm.... felcseréltem a két sort és már nem dobál exceptionöket. csak teljesen rosszul működik.
Most sehogy sem tudok mozogni az űrhajóval.
Mindig a gomb van kijelölve, így ha spacet nyomok, akkor is az nyomódik le, pedig az űrhajóval mozognék.
-
Oppenheimer
nagyúr
Sajnos így nem tudom megcsinálni, mert kb az alapjaitól újra kéne írnom mindent, és két nap nem elég rá.
Most elkezdtem úgy, hogy a bal oldali panelre ismeri a középsőt, és a középső is a bal oldalit. Hozzáadtam a bal oldalihoz egy pause/resume gombot. A gomb ActionListenere azt csinálja, hogy fut a játék és rákattintanak, akkor átírja a gomb szövegét pauseról resumra és a középső panel Paused változóját true-ra állítja. Ezt megcsináltam, de most ha lenyomom a spacet, hogy lőjek, egyből dob egy exceptiont a program és leáll. Lehet azzal van baja, hogy külön ActionListener van az űrhajónak és annak a gombnak? Hmmm nem hiszem. De akkor mitől lehet?
szerk: itt az excpetion:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Game.LeftPanel.actionPerformed(LeftPanel.java:30)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener$Actions.actionPerformed(Unknown Source)
at javax.swing.SwingUtilities.notifyAction(Unknown Source)
at javax.swing.JComponent.processKeyBinding(Unknown Source)
at javax.swing.JComponent.processKeyBindings(Unknown Source)
at javax.swing.JComponent.processKeyEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)Ezen a helyen jön elő:
public void actionPerformed(ActionEvent ae) {
if (gameArea.isPaused()) { // itt dobódik a kivétel
pause.setText("Resume");
gameArea.setPaused(false);
}
else {
pause.setText("Pause");
gameArea.setPaused(true);
}
} -
Oppenheimer
nagyúr
Sziasztok!
Azt szeretném megcsinálni, hogyha megnyomom az escape-et, akkor a játék szüneteljen, és a középső fekete részen egy másik JPanel, vagy akármi jelenjen meg, ahova hozzáadhatok gombokat és textfieldeket.
Mi legyen az az "akármi"? Mivel lehetne megvalósítani? JLayeredPane-re gondoltam, de úgy látom az nem erre való.
Megjegyzés: Jelenleg 3 JPanel van egy JFramebe rakva.
-
Oppenheimer
nagyúr
Köszönöm a terjedelmes válaszokat! Sorban reagálok mindre.
4440:
első: különösebb oka nincs, ha hazajöttem átírom foreachremásodik: értem, MVC minta alapján szeretném természetesen megcsinálni a játékot, de ez az első ilyen dolog amit csinálok, és a hajnalig tartó gányolásnak lett ez az eredménye. Szóval a destroyEmeny()-t majd animator.animationCycle()-ben kell majd gondolom meghívni, de még nincsenek se lövedékek, se ütközésdetektálás, úgyhogy az arrébb lesz.
harmadik: erre neten találtam egy példát, ezt is beleírom majd ha hazaértem
public void run() {
long beforeTime, timeDiff, sleep;
beforeTime = System.currentTimeMillis();
while (ingame) {
repaint();
animationCycle();
timeDiff = System.currentTimeMillis() - beforeTime;
sleep = DELAY - timeDiff;
if (sleep < 0)
sleep = 2;
try {
Thread.sleep(sleep);
} catch (InterruptedException e) {
System.out.println("interrupted");
}
beforeTime = System.currentTimeMillis();
}
gameOver();
}Így gondoltad, ugye?
4441:
"Folyt.: A kódban ki az a GA? A Move most viewport (ablak) vagy világ (0-100) koordinátákban számol? Mert egyértelműen az utóbbiban kéne, és csak rajzolásnál konvertálni pixelpozíciókra."Itt is valóban nagy gányolást műveltem éjjel, megkavarodtam, hogy most az ellenséges objektumoknak ismerniük kell-e GameArea (GA) méretét. A GameArea a fekete hátterű négyzet. Mikor olvastam fent idézett mondatodat, akkor jöttem rá, hogy hülyeséget csináltam, mert csak a rajzolásnál kell konvertálni pixelpozícióra. Most reggel gyorsan átírtam ilyenre, ez az Enemy0:
// this method has to be called in every 20 milliseconds
public void Move () {
// in even seconds this enemy will go right
long time = System.currentTimeMillis();
if ((((time % 10000) - (time % 1000)) / 1000) % 2 == 0) {
x = (int) (x + 0.3);
y = (int) (y + 0.1);
}
// else it will go left
else {
x = (int) (x - 0.3);
y = (int) (y + 0.1);
}
}Érdekes, mert most csak balra hajlandó mozogni, aztán egyszer csak megáll, és egy helyben marad. Míg ezt a hszt írtam jöttem rá, hogy az (int)-é konvertálás miatt van a gond. Át fogom írni a koordinátákat double-re, és az int-é konvertálást csak a kirajzolásnál fogom megcsinálni, szerintem ez segíthet.
Az Enemy2 nagyon szépen cikázik jobbra-balra, pont amiatt, mert egész számot adok neki:
public void Move () {
// in even seconds this enemy will go right
long time = System.currentTimeMillis();
if ((((time % 10000) - (time % 1000)) / 1000) % 2 == 0) {
x = (int) (x + 1);
y = (int) (y + 0.15);
}
// else it will go left
else {
x = (int) (x - 1);
y = (int) (y + 0.15);
}
}A hozzászólásban lévő többi tanácsot köszönöm és megfogadom őket.
4442:
Erről egyelőre sejtésem sincs, hogy kéne az általad vázolt duplapufferelést megcsinálni, viszont a GameArea konstruktorában meghívok egy ilyet: setDoubleBuffered(true);Mint már említettem az egész GameArea egy gányolás, sok mindent beleírtam este, hogy kipróbálhassam jól mozognak-e az űrhajók. Elküldtem neked privátban az egész osztály forráskódját. A Timeren majd még agyalok.
-
Oppenheimer
nagyúr
Érdekes problémába ütköztem, nem tudom mi lehet a gond. Van az űrhajós játékomban 5 féle ellenség. Mindegyik más-más frekvenciával és amplitúdóval cikázik jobbra-balra. Legalábbis kellene nekik, de tök érthetetlenül mozognak.
x és y int változók tárolják a pillanatnyi helyüket, de oly módon, hogy elvileg csak 0 és 100 közötti értéket vehetnek fel, mert ez alapján relatívan számolom ki a pozíciójukat az ablak méretétől függően.
A GameArea (ami a JPanel leszármazottja) osztály drawEnemies() metódusa iterál végig az ellenséges hajókat tároló listán, és rajzolja ki őket.
public void drawEnemies (Graphics g) {
Iterator<Enemy> it = EnemyList.iterator();
while (it.hasNext()) {
Enemy enemy = (Enemy) it.next();
if (enemy.getHealth() > 0)
g.drawImage (enemy.getImage(), (int) (this.getWidth()*enemy.getX()/100), (int) (this.getHeight()*enemy.getY()/100), (int) (this.getWidth()*0.05), (int) (this.getHeight()*0.05), this);
else
DestroyEnemy (enemy);
}
}Amikor csak 1-1 hajót rajzolgattam ki, akkor ez rendben is működött, mindig ott volt a kép kirajzolva ahova terveztem, úgyhogy ezzel elvileg nincsen gond.
Mind az összes "Enemy"-nek van egy saját Move() metódusa, amit ha 20 milliszekundumonként hívnak meg, akkor ennek elvileg az általam tervezett módon kéne az űrhajó koordinátáit módosítania. Például itt van az Enemy0 Move() methodja:
// this method has to be called in every 20 milliseconds
public void Move () {
// in even seconds this enemy will go right
long time = System.currentTimeMillis();
if ((((time % 10000) - (time % 1000)) / 1000) % 2 == 0) {
x = (int) (x + GA.getWidth()*0.003);
y = (int) (y + GA.getHeight()*0.001);
}
// else it will go left
else {
x = (int) (x - GA.getWidth()*0.003);
y = (int) (y + GA.getHeight()*0.001);
}
}Ennek elvileg a páros másodpercekben jobbra, a páratlanokban balra kéne mennie, és egy másodperc alatt oldalirányban az ablak szélességének 15%-át megtennie.
Pl. legyen az ablak 540*540-es felbontású. Ekkor az 1 másodperc alatti horizontális irányú elmozdulás pixelben kifejezve 540*0.003*1000/20 = 81, és 81/540 = 0,15, tehát az ablak szélességének 15%-a.
1000/20-szal való szorzás úgy jött, hogy mint ahogy azt már említettem, 20ms-onként kell meghívódnia. Ami meg is történik itt:
public void run() {
while (true) {
repaint();
animator.animationCycle();
try {
Thread.sleep(20);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}Az animator ismeri a tárolót amiben az Enemy-k vannak, és végigiterálva rajtuk, meghívja mindnek a Move() metódusát az animationCycle() metóduson belül. Ezt megteszi minden 20ms-os alvás között.
Mégis a következő képpen mozognak az ellenséges hajók:
Az A-val jelölt hajók egy pillanat alatt lejönnek fentről, és kimennek a pályáról, a B-vel jelöltek meg abban a magasságban cikáznak jobbra balra, de jóval nagyobb amplitúdóval és sebességgel, mint amire számítottam a kód alapján. Ezt a képet csak úgy tudtam megcsinálni, hogy 900-ra állítottam a Thread.sleep()-et a run metódusban. Egyébként túl gyorsan cikáznának, főleg az A-val jelöltek, mert azok egyből el is repülnek.
Ha 20ms-os alvással futtatom, akkor a B csoport hajói egy másodpercenként visszajönnek a látható pályára, egyszer jobb-, egyszer baloldalról érkezve, ugyanis akkora az amplitúdójuk, hogy idejük nagyját a pályán kívül töltik.
Van valakinek ötlete, hogy kéne ezt debuggolni?
Bemásolom még az ötféle Enemy Move() metódusát:
Elsőé:
// this method has to be called in every 20 milliseconds
public void Move () {
// in even seconds this enemy will go right
long time = System.currentTimeMillis();
if ((((time % 10000) - (time % 1000)) / 1000) % 2 == 0) {
x = (int) (x + GA.getWidth()*0.003);
y = (int) (y + GA.getWidth()*0.001);
}
// else it will go left
else {
x = (int) (x - GA.getWidth()*0.003);
y = (int) (y + GA.getWidth()*0.001);
}
}Másodiké:
// this method has to be called in every 20 milliseconds
public void Move () {
// in uneven seconds this enemy will go right
long time = System.currentTimeMillis();
if ((((time % 10000) - (time % 1000)) / 1000) % 2 == 1) {
x = (int) (x + GA.getWidth()*0.0045);
y = (int) (y + GA.getWidth()*0.002);
}
// else it will go left
else {
x = (int) (x - GA.getWidth()*0.0045);
y = (int) (y + GA.getWidth()*0.002);
}
}Harmadiké:
public void Move () {
// in even seconds this enemy will go right
long time = System.currentTimeMillis();
if ((((time % 10000) - (time % 1000)) / 1000) % 2 == 0) {
x = (int) (x + GA.getWidth()*0.01);
y = (int) (y + GA.getWidth()*0.0015);
}
// else it will go left
else {
x = (int) (x - GA.getWidth()*0.01);
y = (int) (y + GA.getWidth()*0.0015);
}
}Negyediké:
public void Move () {
// in even seconds this enemy will go right
long time = System.currentTimeMillis();
if ((((time % 10000) - (time % 1000)) / 1000) % 2 == 0) {
x = (int) (x + GA.getWidth()*0.012);
y = (int) (y + GA.getWidth()*0.002);
}
// else it will go left
else {
x = (int) (x - GA.getWidth()*0.012);
y = (int) (y + GA.getWidth()*0.002);
}
}Ötödiké:
public void Move () {
// in even seconds this enemy will go right
long time = System.currentTimeMillis();
if ((((time % 10000) - (time % 1000)) / 1000) % 2 == 0) {
x = (int) (x + GA.getWidth()*0.012);
y = (int) (y + GA.getWidth()*0.002);
}
// else it will go left
else {
x = (int) (x - GA.getWidth()*0.012);
y = (int) (y + GA.getWidth()*0.002);
}
}B csoportba az van első és a harmadik Enemy, A csoportban a többi 3.
-
Oppenheimer
nagyúr
Köszönöm a választ neked is, meg gygabor88-nak!
Végülis megrajzoltam Adobe Illustratorral őket. Most az a kérdés, hogy az ilyen meseszép SVG fájlokkal tud-e valamit kezdeni a Graphics2D? Lehetőleg úgy, hogyha betöltöm őket és kirajzolom, akkor a fehér háttér ne rondítson bele, hanem az űrhajó a csillagok felett suhanjon. Nézegetem nagyban az Oracle doksiját, de sajnos abból nem tudtam rájönni, elkezdeni meg nem akarom vele úgy, hogy esetleg mégsem tudja.(#4404) trisztan94: Nem sajnos.
Csak egy egyszerű játék szoftverlabor házinak.
-
Oppenheimer
nagyúr
válasz
Oppenheimer #4400 üzenetére
Hát bizony PS-olnom kell.
-
Oppenheimer
nagyúr
válasz
trisztan94 #4357 üzenetére
Az elsőt megcsináltam szálkezeléssel. A másodikat még nem tudom hogy kéne.
-
Oppenheimer
nagyúr
Bemásolok ide egy e-mailt, gondolom az előadó úr akinek küldtem ma már nem fog válaszolni, remélem itt tudja majd valaki.
Tisztelt Tanár úr!
Nagy házimnak egy space invaders szerű játékot választottam. A specifikációt már kitaláltam hozzá. Úgy szeretném megcsinálni, hogy az ablak default felbontása 1280*720 legyen, és mivel csak vektorgrafikus elemekkel dolgozom, ezért nyugodtan skálázódhat kisebb-nagyobb méretre. De hogy ne nézzen ki bugyután a játék, ha átméretezik az ablakot, ahhoz az kéne, hogy csak úgy lehessen átméretezni, hogy megtartja a 16:9-es képarányt. Ehhez tudna adni egy kis segítséget?
Lenne még egy kérdésem.
A JFrameben olyan Layoutot szeretnék, hogy középen egy négyzetben folyik a játék, két szélen pedig egyenlő szélességű sáv található, ahol statisztikák meg egyéb dolgok jelennek meg. BoxLayouttal próbálkoztam, le is tudtam tenni egymás mellé a 3 JPanelt, de nem tudom hogy változtathatnám meg a méretarányukat. Csatolok 2 painttel szerkesztett képet, hogy hogy képzelem el, és hogy mit sikerült alkotnom. -
Oppenheimer
nagyúr
válasz
Peter Kiss #4338 üzenetére
Köszönöm
-
Oppenheimer
nagyúr
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- SkyShowtime
- Asztalos klub
- Egy helyre gyűjti az eltérő áruházak játékait a Microsoft
- Bittorrent topik
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- Milyen okostelefont vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- XIV. Leó pápa szerint a politikusoknak kezdeniük kell valamit az AI-veszélyekkel
- A fociról könnyedén, egy baráti társaságban
- Milyen digitális videókamerát?
- További aktív témák...
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 16/32/64GB RAM RTX 4060Ti 8GB GAMER PC termékbeszámítással
- Bomba ár! Dell Latitude 3550 - i5-5GEN I 4GB I 500GB I 15,6" HD I HDMI I Cam I W10 I Garancia!
- ÁRGARANCIA!Épített KomPhone i9 14900KF 32/64GB RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
- Samsung Galaxy A33 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Dell Latitude 5495 Full HD IPS Ryzen 5 pro 2500u Radeon Vega Mobile Gfx i5-8350u verő Bp MPL Foxpost
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest