- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Computex 2024: Itt a Strix Pointra épülő Zenbook S 16
- Samsung QN800D: Neo QLED 8K tévét teszteltünk
- Fejhallgató erősítő és DAC topik
- ThinkPad (NEM IdeaPad)
- Hisense LCD és LED TV-k
- Nyomtató topik
- Megérkezett Magyarországra az LG 480 Hz-es OLED monitora
- Gaming notebook topik
- Hobby elektronika
Hirdetés
-
Computex 2024: okosmonitorok az Acer standján
ph A tajvani vállalat smart portfóliójában azért akad olyan modell is, ami játszani sem utolsó választás.
-
Killing Floor 3 - Nyúlfarknyi videón a folytatás
gp A franchise új része sajnos még mindig nem kapott megjelenési dátumot.
-
Retro Kocka Kuckó 2024
lo Megint eltelt egy esztendő, ezért mögyünk retrokockulni Vásárhelyre! Gyere velünk gyereknapon!
Új hozzászólás Aktív témák
-
bucsupeti
senior tag
-
func93
senior tag
Sziasztok!
Tudtok ajánlani könyvet ami a java-val foglalkozik? Nem rég kezdtük el egyetemen aztán gondoltam kicsit beleásom magam.
"Nem lehet összekötni a pontokat a jövőt fürkészve, az összefüggések csak utólag visszanézve látszanak." - Steve Jobs
-
F1rstK1nq
aktív tag
Ha nem probléma az angol, akkor a legjobb könyv a témában, ami ad egy részletes leírást a nyelvről: Thinking in Java
Abszolút kezdőknek is ajánlott és mérföldekkel jobb, mint a magyar "társaik".Adrenaline is natures way of telling you 'don't fuck up.'
-
Sziasztok!
Egy Minecraft modot készítek a gyerekeknek (mcreatorral fordítom, mert az Eclipse vmiért nem indul el), de ez a Jetpack kód kifogott rajtam... Sajnos egyenlőre nem jöttem rá, hogy hol lehet a hiba, de nyilván triviális és csak én nem veszem észre...
És ezt dobja a compiler:
jetpack.java:152: error: ')' expected
}
^
jetpack.java:153: error: illegal start of expression
}).setUnlocalizedName("jetpack");body.setMaxStackSize(1);
^
jetpack.java:153: error: ';' expected
}).setUnlocalizedName("jetpack");body.setMaxStackSize(1);
^
3 errors
:compileJava FAILED
FAILURE: Build failed with an exception.
BUILD FAILED
* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.
Total time: 24.777 secs
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.A kugli nem dobott semmi használható infót, így a szakikhoz fordulnék.
Előre is köszönöm a válasz(oka)t!
[ Szerkesztve ]
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
bairyhalls
csendes tag
Hello!
Probalkoznek en egy aprocska kis jatek keszitesevel, de mar az ablak megjelenitésével is gondjaim vannak.
A game.javam igy nez ki: [link]
A window.javam pedig igy:[link]
Ha eclipsben lefuttatom a dolgot, akkor semmilyen ablak nem jelenik meg, a hibauzenetek pedig a kovezkezoek: Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The constructor Window(int, int, String, Game) is undefined
at myfirstGame.Game.<init>(Game.java:10)
at myfirstGame.Game.main(Game.java:20)Mi lehet a problema?
[ Szerkesztve ]
-
M_AND_Ms
addikt
válasz bairyhalls #8215 üzenetére
A game-ben, nem a saját Window osztályod konstruktorát hívod, hanem a java.awt.Window osztályét, emiatt kapsz hibát, mert olyan konstruktor abban nem létezik.
Aki tejszínhabot szeretne, az inkább verje ki a fejéből!
-
M_AND_Ms
addikt
válasz bairyhalls #8217 üzenetére
Alapvetően annyi, hogy a Game osztályod import részéből kitörlöd a hibás hivatkozást: import java.awt.Window;
(ebből látszik, hogy rossz Window osztályt használ)
Mivel a saját Window osztályod azonos csomagban van az őt használó Game osztállyal, ezért nem is kell külön importálnod. Érdemes a jövőben egyedibb nevekkel illetni a saját osztályaidat . A Window név nagyon általános emiatt, könnyen félrecsúszhat az import és így egy egész más Window osztály kerülhet bele. Bár az Eclipse segít, mert a codeassist már a kód írásakor mutatja, hogy melyik Window-ról lesz szó és fel is ajánlja az összes ugyanolyan nevű osztályt, amiből ki lehet választani azt, amire valóban gondolsz.Nálad, az Eclipse-ben amúgy valahogy nincs minden korrekten összerakva, mert ezt a hibát megint, már a kód írásakor tudná jelezni neked - aláhúzná pirossal
[ Szerkesztve ]
Aki tejszínhabot szeretne, az inkább verje ki a fejéből!
-
M_AND_Ms
addikt
válasz bairyhalls #8219 üzenetére
Ha több ugyanolyan nevű osztályt talál, akkor mindig rákérdez. Lehet, véletlenül kiválasztottad a rosszat. Előfordul.
Ezért ajánlatos az ilyen nevek használatának kerülése.Aki tejszínhabot szeretne, az inkább verje ki a fejéből!
-
SirRasor
őstag
Üdv!
Nagyon kezdő vagyok még java-ban, de Isten látja lelkem - nagyon próbálkozom.
Összeraktam egy kis programot, ami SQL adatbázisból kinyer adatokat és jTable-be dobja.
Működött, fasza is volt. 2 hete nem nyúltam hozzá.Ma a windowbuilder azt mondta, hogy hiba miatt nem tudja megnyitni a grafikus tervezőt
"java.lang.NullPointerException" van a kódban..Nem nyúltam hozzá. Ez gyakori jelenség? Egyáltalán mit lehet ilyenkor tenni? A kód biztosan jó; ha lefuttatom, akkor működik, csak a grafikus tervező nem nyílik meg.
Akit esetleg érdekel, itt a forrás.
Most már kíváncsi vagyok, hogy én vagyok-e a béna, vagy tényleg szórakozik ez velem..Make Love not war!
-
SirRasor
őstag
válasz SirRasor #8223 üzenetére
Közben megvan a hiba oka.
WindowBuilder megnyíláskor valamiért végre is hajtja a lekérdezést az adatbázisból. Engem nem zavart, mert láttam az adatokat is. Mondjuk érdekelne, hogy azt hol lehet kikapcsolni. Szóval most gondolt egyet, és már nem tud adatot visszaadni, úgyhogy egy kis kivételkezeléssel már működik.Csak továbbra se értem, mert nem nyúltam hozzá
Make Love not war!
-
Üdv ismét!
Még mindig a Minecraft modon dolgozom, közben a Jetpacket is megoldottam, tehát nagyon happy vagyok, viszont ismét egy noob problémába ütköztem...
Tehát ahhoz, h az adott mc itemhez adjon leírást a list.add("Leiras szovege..."); -t használom és ez működik is perfektül. Viszont, ha ékezet is van benne, akkor az ékezetek helyén ASCII szerű kriksz-krakszok lesznek... :/ Először azt hittem, hogy csak a fordító tréfált meg, ezért HxD-ből átírtam a classokban az ékezetes karaktereket, de nem segített...
Nyilván triviális a megoldás, de nekem nem sikerült rájönnöm, így Benneteket kérdeznélek, hogy Ti mit ajánlotok.
Előre is köszi!
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
-
Karma
félisten
válasz Mr Dini #8226 üzenetére
A Minecrafthoz nem értek, a HxD-t se tudom hogy micsoda, de tipikusan akkor van ez a jelenség ha a fordító nem abban a kódolásban kapja a forrásfájlokat, mint amit vár. Windowson jön ez elő a gyakorlatban, az egyik CP1250-et akar (közép-európai kódlap), a másik meg UTF-8-at.
A forrásfájljaid kódolását a Notepad++-szal elég egyszerűen meg tudod nézni és át is konvertálhatod egy kattintással. A környezetedet viszont csak te ismered.
Hosszú távon meg azt ajánlanám, hogy a szövegeket szervezd ki XML vagy Properties fájlba. Valószínűleg a Minecraftnak is van valami preferált módja.
[ Szerkesztve ]
“All nothings are not equal.”
-
Igen, sajnos winen próbálkozom.
Köszi amúgy a választ, ilyen egyszerűre nem is gondoltam!
Majd holnap ránézek.
2. Igen, az mc is támogat hasonlót, sőt, mi-több! Van minden nyelvhez külön egy .lang fájl, ami tökéletesen működik, de a list.add-nál vmiért nem sikerült a fájlból kiolvastatnom a hozzá tartozó értéket... De akkor még próbálkozom!
[ Szerkesztve ]
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
-
-Faceless-
őstag
Sziasztok!
Kezdő vagyok még java-ban, és lenne pár kérdésem.
Egy egyszerű konzolos játékot írnék, de pár dolgon fenn akadtam.
Próbáltam angolul rákeresni, de vagy nincs rá megoldás, vagy még nem elég jó az angolom ahhoz, hogy megtaláljam, amit akarok.Szóval az első az lenne, hogy van-e közvetlen mód arra, hogy kiderítsem egy osztálynak hány példányosítása van?
Csinálhatnám egyszerűen, úgy is, hogy létrehozáskor számlálom, csak az érdekelne van-e más megoldás?Illetve a számomra fontosabb, hogy van-e ismétlés nélküli paraméteres random szám generátor?
Erre csak az jutott eszembe, hogy normál paraméterest használok, majd ha az adott tag volt már, akkor újra futtatnám, de erről nekem visít, hogy ronda.Nagyon hálás lennék, ha tudnátok segíteni.
-
zsambek
aktív tag
válasz -Faceless- #8231 üzenetére
Szia!
Az elsore sajnos nincs otletem, de erosen arra tippelek, hogy legyen egy static int-ed, amit constructor lefutasakor novelsz, es amikor a garbage collector elkapja, akkor pedig csokkentesz.
A random generatorosra viszont pedig sajnos valamilyen hasonlo lesz a megoldas. Hanyszor szeretnel egyebkent generaltatni? Illetve mekkora a range?
[ Szerkesztve ]
-
-Faceless-
őstag
válasz zsambek #8232 üzenetére
A range változó inputtól függően 28 - 36 - 48, de azt hiszem találtam rá megoldást. Még nem próbáltam ki, de ez meg fog felelni a célnak.
Pályaméret alapján egyenlő számú mező kiosztására lenne használva.public static void main(String[] args) {
Integer[] arr = new Integer[1000];
for (int i = 0; i < arr.length; i++) {
arr[i] = i;
}
Collections.shuffle(Arrays.asList(arr));
System.out.println(Arrays.toString(arr));
}[ Szerkesztve ]
-
Karma
félisten
válasz -Faceless- #8233 üzenetére
A Collections.shuffle egyébként a helyes megoldás a feladatodra, örülök hogy megtaláltad. Az ebben implementált Fisher-Yates keverés egyenletes, szemben egy tipikus naív megoldással. Például itt van kifejtve, példával.
“All nothings are not equal.”
-
Nah, attól tartok naponta írnom kell ide a kezdőbbnél kezdőbb kérdéseim...
Most abba a hibába ütköztem, hogy egy kis delayre lenne szükségem a modban 2 command között.
Próbáltam a thread félét és a TimeUnit-os sleepet is, de egyik sem ment... :/ Tudtok vmi más módszert sleepre?
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
zsambek
aktív tag
válasz Mr Dini #8235 üzenetére
Szia!
Mit jelent az, hogy nem ment? Pontosan mekkora sleep-re lenne szukseged? Mit irtal bele? Peldaul a Thread.sleep-nel? Illetve meg azt hozzafuznem, hogy pontosan miert is kell neked a delay? Nem tul szep csak ugy sleep-eltetni dolgokat, mig a masik befejezi a dolgat... Talan...
[ Szerkesztve ]
-
válasz zsambek #8236 üzenetére
3-3,5 sec sleepet számoltam.
Ezekkel próbálkoztam:
thread.sleep(3500);
TimeUnit.SECONDS.sleep(3);
Az elsőre azt dobta, hogy szüksége van még adatra, a TimeUnit pedig az importnál akadt el. Sorry, most konkrét gradle logot nem tudok beszúrni, mert csak mobilon van net... :/
Arra tudok tippelni, h valamelyik mc-s (forgeos) libraryval "akad össze" a cucc.
Azért kell a delay, mert szeretném, ha a modolt Minecraftban kiütök egy blokkot, akkor 20% eséllyel adjon ki robbanó hangot, majd 3-3,5 sec múlva robbanjon fel a környezet. Eddig minden megy, csak a delay nem...
[ Szerkesztve ]
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
zsambek
aktív tag
válasz Mr Dini #8237 üzenetére
Szia!
Tippre: A Thread.Sleep() lenne a jo megoldas, viszont gondolom egy szalban fut az egesz szerver a pluginoddal / mododdal, amit csinalsz. Tehat, amikor elalltatod, akkor nem csak az a cselekves alszik el, hanem minden mas is. (Ez nagyon nem okes)
Az a gond egyebkent, hogy nem nagyon ertek a Minecraft dolgokhoz, szoval nem nagyon tudok mit mondani. De eloszor is kulonitsd el a pluginodat a fo szaltol, hogy csak az menjen el aludni.A szuksege van adatra reszt pedig ki tudnad fejteni?
-
-
zsambek
aktív tag
-
-Faceless-
őstag
Sziasztok!
Ismét zátonyra futottam. Most olyan problémám lenne, hogy hogyan lehetne szépen 2 dimenziós tömböt például x, y, z darab különböző konstanssal feltölteni.
Szóval mintha volna egy 6x6-os tömböm, amibe helyezzek el 6 db nullát, 4 db 1-est, stb.A korábban felhozott Fisher-Yates keveréshez használnám. Most hirtelenjében csak olyan megoldás jut eszembe, hogy végiglépkednék a tömbön, visszaszámlálom hány darab van, majd a következőre lépek, viszont amennyi féleképpen fel kellene töltenem, ez nagyon nem tűnik szépnek. Az Arrayfill()-el pedig csak egy konstanssal tudnám.
Minden bizonnyal egyszerű a megoldás, csak megint üresbe váltott az agyam, és nem jut más eszembe.
Előre is megköszönném!
[ Szerkesztve ]
-
zsambek
aktív tag
válasz -Faceless- #8241 üzenetére
Szia!
Kicsit ki tudnad fejteni, hogy x,y,z kulonbozo konstanssal feltolteni? Illetve, hogy pontosan mi az alap otlet, mert most igy annyira nem latom, hogy mit szeretnel. Esetleg egy peldaval tudnad szimulalni?
-
-Faceless-
őstag
válasz zsambek #8242 üzenetére
Például lenne egy 5x5-ös objektumokból álló tömböm (a pálya), és ki szeretnék osztani a 25 mezőből 5-öt üresnek majd 10-et az 1-es játékosnak, 5-öt a 2-esnek, 5-öt a 3-asnak. Itt az 5, 10, 5, 5 lenne az x, y, z, stb.
Létrehozok egy pályával megegyező méretű segéd tömböt, amit feltöltök az előbbinek megfelelően 5 0-val, 10 1-el, és így tovább.
Ezt a segédtömböt összekeverem, a véletlen mezőkiosztásért, majd egyszerű tömbbejárással átadom az értékeket a pályának.A segédtömb feltöltése lenne a gond, mivel változó számú játékosnak változó számú mezőt kellene kiosztani.
Meg tudnám oldani, hogy tömbbejárásban visszaszámlálom a lehetséges játékosok mezőszámait, de nekem nem tűnik szépnek. -
válasz Mr Dini #8239 üzenetére
Nah, most mást dob, konkrétabban ezt:
rubyOre.java:199: error: unreported exception InterruptedException; must be caught or declared to be thrown
Thread.sleep(3500);
^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.Csak ezt adtam hozzá: Thread.sleep(3500); ...
Nekem csak arra lenne szükségem, hogy az 1. parancs (hang kiadás) után 5 mp-vel menjen a 2. parancsra, ami egy robbanás a játékon belül. Van más sima counter javaban, ami nem altatja el az egészet és működőképes?
[ Szerkesztve ]
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
Karma
félisten
válasz -Faceless- #8243 üzenetére
Rövidtávon megkönnyíted a saját életed, ha a kétdimenziós tömböket elfelejted, helyette egy dimenzióban tárolod a pályád és okosan indexelsz (pl. x,y koordinátákhoz a tömb y*N+x. elemét veszed). Ekkor a tömb feltöltése és megkeverése is triviálissá válik.
Mr Dini: Nem baj, hogy a szintaktikán elakadtál, mert a Thread.sleeppel amúgy is kinyírnád a játékot. Ezért nem is mondom meg, hogy lehetne feloldani az előző fordítási hibát.
Ha Bukkit plugint írsz esetleg, azzal meg lehet oldani ezt helyesen is. Tiszta Java-val nem tudom hirtelen, hogy tudnál egyszerűen visszatérni a UI szálra.
[ Szerkesztve ]
“All nothings are not equal.”
-
Igazából, nekem nem is sleepre lenne szükségem, hanem egy szimpla counterre. Csak nem tudom, hogyha pl while-lal létrehozok egy i változót 0 értékkel és ahhoz adok hozzá mindig +1-et, amíg eléri a 4-et, akkor az valóban mpenként fog hozzáadni +1-et. Gondolom nem...
Forge mod loader-t használok, elvileg ott is van egy csomó extra lib, ami a segítségemre lehet. A gond az, hogy sehol egy doksi, hogy hogyan is működnek, mi a szintaktika stb...
(#8246) M_AND_Ms
Ezt próbáltam már try-ba tenni és elkapni, de kicrashelt a játék, ha robbanni kellett volna neki...
Amúgy ezt próbáltam:
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
continue;
}Ja és continue; nélkül is ugyanaz az eredmény...
[ Szerkesztve ]
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
Karma
félisten
válasz Mr Dini #8247 üzenetére
Végülis ja, az előbb írtam, hogy: "a Thread.sleeppel amúgy is kinyírnád a játékot"
Ezt nem lehet olyan naívan megoldani, hogy majd egy számláló elér valameddig. Nem tudsz számlálót írni anélkül, hogy a mostani problémát megoldanád.(*)
Nem akarnád esetleg a mostani forrásodat megosztani például Pastebinen, vagy valami forráskezelővel (BitBucket, GitHub, stb.)? Jó eséllyel adna ötleteket.
(*): Közben olvasgattam, hogy hogy működik ez a Forge a gyakorlatban. Igazából mégiscsak számlálószerű a megoldás, a rendszer küld ún. tickeket amikor a világ frissül, erre fel tudsz iratkozni, és amikor az értesítés jön, cselekedni. De ehhez is fórumokat kell bújni.
[ Szerkesztve ]
“All nothings are not equal.”
-
Igen, a minecraftban tickek vannak. Be kell állítani, hogy a blokk/cucc, amit hozzáadsz hány tickenként frissüljön. 10 tick jelent 1 mp-et. És az általad linkelt EventHandlerrel lehet lekódolni, h mit hajtson végre, ha blokkfrissítés van. Nade, ez azért nem jó, mert én azt szeretném, ha az általam létrehozott rubint blokkot kiütöd, akkor 20% eséllyel ad egy sercegő hangot, majd 4 mp múlva robban.
Megoldhatnám úgy, hogy beleírom az EventHandler onDestroy részébe, hogy a változót állítsa mondjuk 1-re, és az update tick-be pedig berakhatnám, hogy ha a változó 1, akkor minden update ticknél adjon hozzá 1-et, és ha mondjuk elérte a 4-et, akkor robbanjon, de ezzel az a gond, h szétütés után már nincsen update tick. Másodsorban pedig, hogy ha több rubint blokk van a világban, akkor azok is frissítődnek és ha a változó 1, akkor az összes ad hozzá mrg egyet és ezzel vagy kifagy a játék, vagy felrobban az egész map...
Tehát picit tanácstalan vagyok. De akkor du megosztom a kódot püben.
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
-
Közben Githubon rátalátam egy NetherOres nevű modra, ahol úgy értelmezem, h ott is kis eséllyel robbanhat a dolog és hangot is ad ki, szóval puskának tökéletes! Már csak azt kéne megtalálnom, hogy hol itt a késleltetés...
[ Szerkesztve ]
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Windows 10
- Termékoldal is van a Galaxy Watch FE-hez
- Luck Dragon: MárkaLánc
- Luck Dragon: Asszociációs játék. :)
- Vicces képek
- Ezúttal bennfentes kereskedelemmel vádolják Elon Muskot
- Computex 2024: Itt a Strix Pointra épülő Zenbook S 16
- Samsung QN800D: Neo QLED 8K tévét teszteltünk
- További aktív témák...
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen