- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Tomasz72: Ventilátor upgrade
- sziku69: Szólánc.
- Brogyi: CTEK akkumulátor töltő és másolatai
- MasterDeeJay: H110-es lapban 10.gen Comet Lake működhet?
- eBay-es kütyük kis pénzért
- Parci: Milyen mosógépet vegyek?
- Mr. Y: Motoros sztorik #06
Új hozzászólás Aktív témák
-
Dare2Live
félisten
Ez olyan vicces kérdés, "Javanak pont az az óriási előnye, hogy nem exe hanem jar."
A JAR az átfordított file, amit egy java + filenev parancsal "BÁRMILYEN*" szgépen elindithatsz. Ellenben egy exevel ami max egy géptipus pl x86 és ott is csak egy fajta op rendszer alol hajlandó elindulni.
-
Dare2Live
félisten
Olyan problémám van, hogy a http://java.sun.com/docs/books/tutorial/java/index.html oldalon lévő anyagot sokat akarom forgatni de papirrol.
Letükrözni le tudom hddre, csak ki kéne nyomtatnom és nincs kedvem "oldalanként"
Ha vmi auto matice megoldás van erre kérlek szoljatok.
-
supesz
aktív tag
Egy gyors (szürke) amatőr kérdés. Ha megírtam a kis egysoros Java "programot", akkor azt a IDE (én NetBeans-t raktam fel) kívül, hogyan tudom lefuttatni? Úgyértem C-ben .exe-t generált a fordító, itt mit kell csinálni? Előre is bocs az amatőr kérdésért.
supesz
-
Sianis
addikt
válasz
loszerafin #1193 üzenetére
String tömb tud utazni XML-ben?
Sianis
-
Sianis
addikt
Sziasztok!
Urak, hozzátok fordulok végső menedékként, mivel egyszerűen nem találok megoldásd. Nem vagyok egy XML profi, de most XML-es problámám lenne. ArrayList-et vagy más String tárolására képes Java típust kell utaztatnom XML-ben. Ez megoldható valamilyen xsd:complextype-al?
Tehát az a lényeg, hogy String tömböt akarok visszakapni, ha jól tudom akkor Axis MessageElement[]-ben tudom kinyerni. Viszont itt hibát kapok, mivel az ArrayList-tel nem tud mit kezdeni, viszont nekem valamilyen dinamikus tömb megoldásra van szükségem.
Van valakinek ötlete?
Sianis
-
loszerafin
senior tag
[OFF]
Kipróbáltam a chat.hu-t és a java applet a 251-shosts.hostoffice.hu gép 23-as portjára kapcsolódik. Mivel a helyi hálótokon szigorú szabályok kötik a netezést (jelszavas proxy),
gondolom, a 23-as portra nem mehettek ki.Esetleg kérdezd meg a helyi rgazdát. Vagy olvasd el a helyi számítógép használati szabályzatot, abban benne kell lennie minden tiltásnak.
[/OFF] -
Pxs
aktív tag
Sziasztok,
következő "óriási" problémám lenne:
Be akarok hozni egy Java appletet böngészőben (Firefox), de a munkahelyi hálózat HTTP proxy-t használ a webes elérésre, ami magában nem lenne gond, viszont a Java alkalmazás (itt konkrétan a chat.hu kliense) nem kapcsolódik, a Java console pedig a következő hibaüzenetet dobja ki úgy 10 másodpercenként:
java.io.IOException: Action timed out[soc:443]
at jworx.client.n.a(Unknown Source)
at jworx.client.J.a(Unknown Source)
at jworx.client.next.p.<init>(Unknown Source)
at jworx.client.next.EmbeddedApplet.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)ahol a "soc" szám mindig más. Próbáltam belőni a proxy-t az XP Control Panel / Java / Network-nél, de eredmény ugyanez. Ugyanakkor a böngészőben a proxy elsőként mindig kér user nevet és jelszót, amit be szoktam neki adni, viszont a Java már nem kéri csatlakozáskor. Lehet, hogy ez a gond....vagy mi lehet még ?
Előre is kösz a segítséget !
-
Lorienel
csendes tag
Sziasztok,
Olyan valaki segítségét kérném aki az alábbi kis alkalmazás megírását elvállalná.
MySqlben létrehozni egy táblát
Java-ban megírni a programot (tábla, gombok, menü)
Lehessen lekérdezni adatokat a táblázatból,
Lehessen felvinni rekordokat (új adatokat)
Lehessen módosítani vagy törölni a táblázatbólAki tudna segíteni az írjon egy privát üzit, hogy a többit megbeszélhessük (pontos részletek, díjazás stb).
-
Lortech
addikt
válasz
Dr. Romano #1185 üzenetére
Nem fordítod le szabályosan, mert a java.exe a futtatórendszer, nem a fordító.
Szóval javac elso.java, aztán java elso. -
Dr. Romano
veterán
Sziasztok!
Feltelepítettem a java fejlesztői környezetet (a netbeans-es verziót) azonban van egy kis gondom.
A programot szabályosan lefordítom, majd indítanám és ezt írja kiMi a gond?
-
nukewar
tag
van valakinek tippje arról, hogyan lehet egy Map-ból a kulcsot kiszedni?
-
PazsitZ
addikt
válasz
nagykovi #1179 üzenetére
Tehát fordítva kell kiírni? Vagy ténylegesen meg kell fordítani magát a tömböt.
Első esetben simán legnagyobbtól haladsz vissza.Ciklus előtt átadod i-nek a tömb maxméretét vagy 0-át.
if (elolrol==1){ i=0;}
else{i=[I]tombmaxertek[/I];}while cilkuson belül teszel egy változót (elolrol), ami meghatározza előlről vagy a végéről írja ki?
és eszerint csökkented vagy növeled a tömbcímet. Így egy ciklusban működik a dolog csak egy plusz paramétert kell átadni:if (elolrol==1){ i++;}
else{i--;}Ha ténylegesen meg kell fordítani akkor elsőt cseréled az utolsóval, másodikat utolsó előttivel, s így tovább amig nem érsz két szomszédos elemhez avagy 1 elemhez (páros/páratlan elemszám)
Ebben az esetben a kiírás meg mivel ténylegesen fordul a tömb tartalom sima. -
nagykovi
csendes tag
Sziasztok.
Megin kellene egy kis segitség
Ez lenne a feladat: Adott egy egész tömb. Írja ki a tömböt, majd fordítsa meg a tömb elemeinek a
sorrendjét és írja ki újra. A tömb kiírásához használjon egy metódustA metódusban a tömb megforditása nem megy...
Köszi előre is a segitséget -
Sianis
addikt
válasz
loszerafin #1173 üzenetére
Már megjelent a stabil Netbeans 6.0.
Sianis
-
Peetry
senior tag
válasz
loszerafin #1173 üzenetére
ok de a kérdés jbuilder 2007-re vonatkozott.
-
Peetry
senior tag
végülis a jpx inportálását megoldottam a sokumentáció segítségével. További kérdés a source/designe nézet. Ahogy néztem, netbeansben is akkor jelentek meg a gombok, ha olyan forrást húztam be, ami grafikus. Viszont újabb kérdés, hogy ha csak simen open file-al nyitok meg *.java fájlt, és nem project-be húzom, akkor hogyan lehet fordítani és futtatni? Erre nem sikerült sehogyse rájönnöm. Sorry az amatőr kérdésekért, de perpill ilyenen akadok ki
-
Peetry
senior tag
Hi!
Van egy olyan problémám, hogy elkeztem javat tanulni. a könyv amit vettem jbuilder 8at használ, nyilván sejtitek melyik könyvről van szó
namost ugyebár ez elég régi verzió, nem is találtam sehol. Viszont arra se nagyon találtam infot, hogy mi az utódja. a turbo jbuilder 2007 lenne? mert ezzel nem tudom megnyitni a jpx projectfájlokat. A másik hogy amiket néztem pl screenshot a 8.0-ról ott van source és designe fül? ezeket hogy lehet 2007 alatt előhozni? Néztem netbeans-t is. Kezelő felületre a 2007 tetszik legjobban. Tudom hogy igazából tökmind1, mert alapoknak bőven sok mindegyik. esetleg 8.0-t lehet még vhonna tölteni? köszi előre is
-
lakisoft
veterán
válasz
loszerafin #1169 üzenetére
ezen még azért kell heggeszteni hogy működjön, de legalább az algoritmus megvan
-
nagykovi
csendes tag
Valaki le tudná irni ennek a megoldását?
Adott egy szöveg és egy n egész szám. Forgassa el a szoveget n*.
pl.
n=3
Hello world
dHello worl
ldHello wor
...
Köszi előre is, elég srügős lene -
Zulfaim
csendes tag
kicsit haladtam, most az a baj, hogy nem mindegyik egérkattintást észleli.
public class Labda extends Applet implements Runnable, MouseListener
{
private int w,h;
private double dx, dy;
private int x, y;
private Graphics offGraphics; // háttérgrafika
private Image offImage; // háttérkép
private Image labda;
private Thread animator=null;
boolean stopFlag;
public void init(){
offImage=createImage(400,400); // a háttérkép létrehozása
offGraphics=offImage.getGraphics();
labda=getImage(getDocumentBase(),"labda.jpg");
x=200;
y=200;
// indulási pozíció
dx=0;
dy=10; // indulási lépéstáv
setSize(400,400);
setBackground(Color.white);
addMouseListener(this);
}
public void start() { // a szál indítása
animator=new Thread(this);
stopFlag=false;
animator.start();
}
public void run() {
while(true) {
if (stopFlag) // ha megállt az animáció
break;
try {
Thread.sleep(50); // 0,2 másodperces várakozás
}
catch (InterruptedException ex){}
w = labda.getWidth(this); // a labda méretei
h = labda.getHeight(this);
if ((x+w+dx)>400 || (x+dx)<0)
dx=-dx * 0.6; // x irányváltás
if ((y+h+dy)>400 || (y+dy)<0)
dy=-dy * 0.6; // y irányváltás
// léptetés
x += dx;
y += dy;
dy += 1.2;
repaint();
}
}
public void stop() { // a szál törlése
stopFlag = true;
animator = null;
}
// kettőspuffer
public void paint(Graphics g) {
int h = getSize().height;
int w = getSize().width;
offGraphics.setColor(Color.white);
offGraphics.fillRect(0,0,w,h); // a rajzlap törlése
offGraphics.drawImage(labda,x,y,this);
g.drawImage(offImage,0,0,this);
}
// egérkattintáskor módosítjuk a lépéseket - irányváltás
public void mouseClicked(MouseEvent e){
/*int dxx,dyy;
dxx = e.getX()-x;
dyy = e.getY()-y;*/
if ( Math.sqrt ( Math.pow (e.getX() - (x + w/2), 2) + Math.pow (e.getY() - (y + w/2), 2)) < w)
{
dy += -20;
dx += (x+w/2) - e.getX();
}
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e) {}
} -
Zulfaim
csendes tag
Szevasztok!
Egy dekázós appletet szeretnék írni, de valahogy nem sikerül megvalósítanom a következőket:
-legyen gravitáció
-ha a labda bal oldalára kattintok, akkor jobbra, ha a jobb oldalára kattintok akkor balra elpattanjonEddig így néz ki a kódom:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class Labda extends Applet implements Runnable, MouseListener
{
private int dx,dy,w,h;
private int x, y;
private Graphics offGraphics; // háttérgrafika
private Image offImage; // háttérkép
private Image labda;
private Thread animator=null;
boolean stopFlag;
public void init(){
offImage=createImage(400,400); // a háttérkép létrehozása
offGraphics=offImage.getGraphics();
labda=getImage(getDocumentBase(),"labda.jpg");
x = y = 150; // indulási pozíció
dx =0;
dy = 20; // indulási lépéstáv
setSize(400,400);
setBackground(Color.white);
addMouseListener(this);
}
public void start() { // a szál indítása
animator=new Thread(this);
stopFlag=false;
animator.start();
}
public void run() {
while(true) {
if (stopFlag) // ha megállt az animáció
break;
try {
Thread.sleep(100); // 0,1 másodperces várakozás
}
catch (InterruptedException ex){}
w = labda.getWidth(this); // a labda méretei
h = labda.getHeight(this);
if ((x+w+dx)>400 || (x+dx)<0)
dx=-dx; // x irányváltás
if ((y+h+dy)>400)
dy=-dy;
if ((y+dy)<0)
{
dy=-dy; // y irányváltás
y-=10;
}
// léptetés
x += dx;
y += dy;
repaint();
}
}
public void stop() { // a szál törlése
stopFlag = true;
animator = null;
}
// kettőspuffer
public void paint(Graphics g) {
int h = getSize().height;
int w = getSize().width;
offGraphics.setColor(Color.white);
offGraphics.fillRect(0,0,w,h); // a rajzlap törlése
offGraphics.drawImage(labda,x,y,this);
g.drawImage(offImage,0,0,this);
}
// egérkattintáskor módosítjuk a lépéseket - irányváltás
public void mouseClicked(MouseEvent e){
int dxx,dyy;
dxx = e.getX()-x;
dyy = e.getY()-y;
if((Math.abs(dxx)<=w/2) && (Math.abs(dyy)<=h/2))
{
y += -30;
}
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e) {}
} -
PazsitZ
addikt
válasz
nagykovi #1164 üzenetére
Fogod végigolvasod a sorokat azzal a feltétellel, h: if (min>tomb[x][y+1]) min=tomb[x][y1];
Ha végigértél a tömb utolsó helyére szúrd be a legkissebb elemet.
Azután vizsgáld meg a sorok utolso elemeit ezzel a feltétellel: if (max<tomb[x+1][utolso]) max=tomb[x+1][utolso]; -
nagykovi
csendes tag
Sziasztok.
Egy kis segitséget szeretnék kérni.
Az lenne a "feladat" h egy n*n-es táblázat sorminimumainak maximumát irja ki. (szóval venni minden sorban a legkisebb elemet, azok közül pedig a legnagyobbat).
Köszönöm előre is. -
lakisoft
veterán
Tudok ajánlani egy-két jó Java könyvet?
-
fLeSs
nagyúr
válasz
loszerafin #1159 üzenetére
Még nem, de ha már belinkelted akkor átfutom. Köszi.
-
loszerafin
senior tag
Nem vagyok jártas ezen a téren, de elképzelhetőnek tartom, hogy a nem pc alapú szerverek piacán más JVM-ek is döntő szerephez jutnak.
Abban biztos vagyok, hogy pc-ken a Win XP és (M$ JVM vagy SUN JVM) felállás a tipikus.Ha pedig tesztelni akarsz, akkor a legtipikusabb felállásokat kell megnézned, esetleg érdekességképpen egy-egy különlegességet megmutatni.
(Pl. ilyenre gondolok: a userek 99%-a Win XP-t használ M$ JVM-mel, a tesztprogramod 10 egység alatt fut le. De ha Brutál OS-t használnának akkor Grgth cég JVM-jével 2 egység alá is mehetnek...)Gondolom, ide már eljutottál:
[link] -
fLeSs
nagyúr
válasz
loszerafin #1157 üzenetére
Miért, szervereknél mást kéne használni?
-
loszerafin
senior tag
Gondolom, az M$ és a SUN a legelterjedtebb.
Ha csak procit akarsz tesztelni és csak "asztali" gépekbe valót, szerintem mindegy, melyik JVM-et használod, csak az összes tesztedben legyen ugyanaz az oprendszer, ugyanaz a jvm és vagy csak appleteket nézz, vagy csak futtatható alkalmazásokat.
Ha appletekkel tesztelsz, maradj egyetlen böngésző egyetlen változatánál. -
fLeSs
nagyúr
válasz
loszerafin #1155 üzenetére
Értem amit írsz.
Nem tudok róla, hogy lenne külön Inteles és AMD-s Java, legalábbis a Sun oldalán nem találtam, csak egy fajtát.
Namost én nem JVM-eket akarok tesztelni, hanem procikat.De ezekszerint ennek csak akkor van értelme, ha többféle JVM-et használok? Maradjunk csak egynél. Így is millió tesztet kell még megnézni procinként.
Melyik a legelterjedtebb? Gondolom a Sun-é?... -
loszerafin
senior tag
"Adott proci jó-e java-ban", szerintem ez a kérdés maga megér egy kis boncolgatást.
Minden nagyon szvsz, amit írni fogok:
Egy java programmal nem a processzort próbálod ki, hanem elsősorban a JVM-et, hiszen a JVM-en/ben/on fut a program.
Ha ez igaz, akkor a kérdés így hangzana: "Mennyire jól fut egy adott JVM egy adott processzoron?"
Na most ha ezt továbbgondolom, akkor egy JVM akkor passzolna egy processzorhoz a legjobban, ha arra az adott processzorra lenne lefordítva, így a JVM ki tudná használni az adott processzor specialitásait.
Ha ez egyáltalán lehetséges, akkor a következménye az lenne, hogy JVM-et nem "x86"-os processzorhoz töltenénk le, hanem pl. AMD Athlon XY-hoz vagy Intel Core 2 duo XY-hoz vagy VIA akarmi ZW-hez.
Viszont erre utaló jeleket nem találok. Persze lehet, hogy a java parancs megvizsgálja a gépet, és a processzorhoz legjobban passzoló JVM-et indítja el...
Ellenben léteznek különböző JVM-ek (MIcrosoft, SUN, de még van pár másik is) amiken lefogadom, hogy egy adott java program különböző sebességgel fut le. Tehát azt mérhetnénk, hogy egy adott java program melyik JVM-en fut le a leggyorsabban.
Felhívnám a figyelmed, hogy mindaz amit írtam, merő spekuláció...
-
fLeSs
nagyúr
Üdv.
Mit gondoltok, ez a teszt [link] nyújt számotokra vmilyen infót arra vonatkozólag, hogy egy adott proci jó-e Javaban? Illetve itt egy másik [link], melyik jobb? Van értelme ilyenekkel procit tesztelni? A végeredmény mond nektek vmit?
Azt látom, hogy ezek sajna nem használják ki a többprocis működést, ha ilyenről tudtok, akkor légyszi szóljatok.
Előre is köszi. -
PazsitZ
addikt
Kellene egy kis segítség, mert nem értem miért nem működik ez a kódrész/miniprogram.
Nem tudok rájönni, hogy rosszul importálom vagy mi a baj?
A függvényt itt találtam: [link]import static java.lang.Double.*;
public class test {
public static void main ( String[] args ){
double szam;
int i;
szam=6.0;
i=intValue(szam);
}
}Hibának ezt írja:
test.java9: cannot find symbol
symbol : method intValue(double)
location : class test
i=intValue(szam);
^ -
kalló
aktív tag
válasz
loszerafin #1148 üzenetére
köszönöm a linkek nagyon jók
-
loszerafin
senior tag
Innen:
Ez segíthet
(egy div-et pozicionálhatsz)function getRefToDiv(divID,oDoc) {
if( !oDoc ) { oDoc = document; }
if( document.layers ) {
if( oDoc.layers[divID] ) { return oDoc.layers[divID]; } else {
//repeatedly run through all child layers
for( var x = 0, y; !y && x < oDoc.layers.length; x++ ) {
//on success, return that layer, else return nothing
y = getRefToDiv(divID,oDoc.layers[x].document); }
return y; } }
if( document.getElementById ) {
return document.getElementById(divID); }
if( document.all ) {
return document.all[divID]; }
return false;
}
function moveDivTo(x,y) {
myReference = getRefToDiv( 'mydiv' );
if( !myReference ) { return; }
if( myReference.style ) { myReference = myReference.style; }
var noPx = document.childNodes ? 'px' : 0;
myReference.left = x + noPx;
myReference.top = y + noPx;
}Ha a célod animáció, akkor :
-
kalló
aktív tag
hy all!
már a java script topicban is feltettem ezt a kérdést de az a topic mostanában elég halott íghát megkérdezem itt is. Hogyan lehet egy képet java scriptben vagy html-ben egy adott x,y koordinátán megjeleníteni???
előre is köszönöm! -
loszerafin
senior tag
válasz
Alvin_ti4200 #1142 üzenetére
Már korábban akartam írni, hogy érdemes ilyen "kis" programoknál megtanulni a kód-dokumentálást, unit tesztelést és a többnyelvűséget
http://java.sun.com/docs/books/tutorial/i18n/index.html
http://java.sun.com/j2se/javadoc/writingdoccomments/
http://www.devx.com/Java/Article/31983/0/page/1 -
Sianis
addikt
Sziasztok!
Keresgéltem a neten, de nem találtam eddig működő megoldást a követekzőre:
Már létező ZIP archívumhoz akarok hozzáadni további fájlokat. Találtam egy kódot, de nem akar működni, elszáll FileNotFoundException-nel, pedig létezik a fájl.
Esetleg van valakinek ilyen problémát megoldó hasznos kis kódja, esetleg link?
Előre is nagy köszönet.
Sianis
-
Alvin_ti4200
félisten
örömmel jelentem, hogy négy napnyi kemény munak után elkészültem a megközelítőleg végleges kóddal
-
rdi
veterán
válasz
Alvin_ti4200 #1136 üzenetére
ó megint valami jó hsz
keyStates pont erre van szükségem... -
Alvin_ti4200
félisten
válasz
loszerafin #1139 üzenetére
ó már túl vagyok ezen a részen, megoldottam az időzítést is Timer és TimerTask nélkül
Most írom az RMS részt, hogy tárolni és megjeleníteni is tudjam a HighScore-okat
-
loszerafin
senior tag
válasz
Alvin_ti4200 #1138 üzenetére
Remek.
Kissé átpofoztam a kódodat, de nem tudom kipróbálni:
int[] dx={25,85,145,25,85,145,25,85,145};
int[] dy={50,50,50,110,110,110,170,170,170};
int[] keyCodes={512,2,1024,4,256,32,2048,64,4096};
int keyIndex=(int)(Math.random()*9);
sprite.next(dx[keyIndex],dy[keyIndex],keyIndex);
lm.paint(g,0,0);
flushGraphics();
int keyState=getKeyStates();
if ( (keyState & keyCodes[keyIndex]) !=0 ){
score++;
}
else{
if(keyState!=0){
score--;
}
}A keyCodes tömb számai helyett jobb lenne enum-okat használni, úgy érthetőbb lenne a program.
Az else ágban a keyState!=0-nak utána kellene nézni, tényleg azt jelenti-e, hogy nyomtak gombot.És azt hiszem, itt mindent megtalálsz a témádhoz:
és ez se rossz:
[link]Ráadásul ez az utolsó "megvan" magyarul is:
[link] -
Alvin_ti4200
félisten
válasz
loszerafin #1137 üzenetére
nem titkos, kedden délután már elárulhatom, akkor már túl leszek a bemutatásán és a leadásán
Konzultáltam ma a szakirány tanárommal és azt javasolta, hogy bonstam ketté a render() metódust, mégpedig rajzolós és billentyűzetelemzős részre. Módosítsam ezek alapján a Midletben a szál run() metódusát úgy, hogy először billvizsgálatot csinál, aztán vár valamennyit, aztán egy for ciklusba tegyem bele a rajzolós metódust és ehhez mérten igazítsam mennyi ideig sleepeljen a thread. Tehát pl. 1 mp-es képváltásnál thread.sleep(50) és ciklusváltozó 0-19. Most ezt fogom megpróbálni megcsinálni, remélem sikerrel járok és utána már "csak" az RMS (RecodStore) rész van hátra az eredmények mentéséhez és kiírásához (HighScore).
-
loszerafin
senior tag
válasz
Alvin_ti4200 #1136 üzenetére
Jól értetted, így gondoltam, látom, gyorsan "fogod" az adást
Lenne pár megjegyzésem a programozási stílussal kapcsolatban:
1. Próbálj meg angol azonosítókat használni, jobban illenek a programozáshoz
2. Próbálj meg olyan azonosítókat választani, amik a funkcióra utalnak és nem a
tartalomra, vagy típusra (pl: veletlen, tomb nem szerencsés)
3. Próbáld meg betartani a Sun névkonvencióit (változónevek első betűje kicsi, ha több szóból áll, akkor a többi kezdőbetű nagy
4. Szeparáld a kódodat. rajzolás és user input mehetne külön metódusba, akár külön osztályban is lehetnének (cohesion)Találtam egy fórumot, talán segít, rákeresve a getkeystates szóra van pár programpélda
[L]http://developer.sonyericsson.com/search.jspa?objID=c2&q=getkeystates[/L]Ha az a gyanúd, hogy az időzítések miatt megy össze vissza a programod, olvasd el ezt:
[L]http://java.sun.com/docs/books/tutorial/essential/concurrency/sync.html[/L]
(Legyenek a metódusaid syncronized-ek)De lehet megoldás az is, hogy nevezzük egy "körnek" a lámpa kigyúlásától a gomb lenyomásáig vagy az idő lejártáig tartó játékrészt.
Ekkor a kör végén hagyd a szálakat összefutni (mindegyik fejeződjön be), majd indítsd újra a szálakat, így nem lesz olyan, hogy pl. az előző lámpához tartozó gombnyomást fogja a programod jónak érzékelni. Meg egyébként is "tisztább, szárazabb érzés" lesz, hogy a szálaid ugyanazt a "kört" kezelik.Hajrá, kíváncsi vagyok a programodra, ha nem titkos, küldhetnél egy forrást az emailemre.
-
Alvin_ti4200
félisten
válasz
loszerafin #1135 üzenetére
megcsináltam az alábbi módon
(remélem jól értelmeztem a mondani valódat
)
int[] tomb1={25,85,145,25,85,145,25,85,145};
int[] tomb2={50,50,50,110,110,110,170,170,170};
int[] gombtomb={512,2,1024,4,256,32,2048,64,4096};
Random rnd=new Random();
int veletlen=rnd.nextInt(8);
dx=tomb1[veletlen];
dy=tomb2[veletlen];
sprite.next(dx,dy,veletlen);
lm.paint(g,0,0);
flushGraphics();
int keyStates=getKeyStates();
if (keyStates==gombtomb[veletlen]){
pontszam++;
}
else{
if(keyStates!=0){
pontszam=(pontszam)-1;
}
}Apró szépséghiba, hogy az időzítések össze-visszasága miatt a jó billentyűleütéseket is néha rossznak veszi és fordítva, illetve valamiért a 2,4,5,6,8 gombok értéke nulla
Pedig tudomásom szerint azok felveszik a LEFT_PRESSED, RIGHT_PRESSED, UP_PRESSED, DOWN_PRESSED és FIRE_PRESSED értékeit is. A gombtomb[]-ben a gombok sorrendjében tároltam le a koordinátákat, tehát az index maga a gomb száma. Lehet az a gond, hogy a paint és/vagy flushgraphics után tettem a feltételeket?
-
loszerafin
senior tag
válasz
Alvin_ti4200 #1134 üzenetére
Nagyjából érthető, nekem csak a 9 db IF szúrt szemet.
Rakd be tömbbe a lenyomható gombokat, vizsgáld meg, a tömbben van-e a lenyomott gomb
és egyezik-e azzal ami kell neked, ha igen adj pontot, ha nem, vonj le egyet.kb így :
if nyomtak_le_gombot then
pontszam+=(lenyomhato_gombok[veletlen] == lenyomott_gomb) ? 1 : -1;
else lejart_az_ido then /* nem nyomott meg semmit és már vált a lámpa */
pontszam-=1; -
Alvin_ti4200
félisten
konkrétan azt szeretném elérni, hogy van egy veletlen nevű változóm, ami egy 0-8-ig terjedű szám (ezzel kreálom azt, hogy a 9 szám közül melyik váltson zöldről pirosra (értelemszerűen ezt kell majd lenyomni a billentyűzeten ahhoz, hogy kapjon a játékos egy pontot)), ez alapján csinálnék egy elágazást (jelenleg 9 darab if, de majd bevágom case-be őket
), hogy ha veletlen=0 & GAME_A_PRESSED!=0, akkor pontszam++, else pontszam=(pontszam-1). Na ilyenből csináltam 9 fajta IF-et, csak az a bajom, hogy állandóan növeli a pontszám értékét teljesen függetlenül attól, hogy hozzányúltam-e a billentyűzethez vagy sem.
Ráadásul én a 2,4,5,6,8 gombokkal úgy számoltam, hogy azok működnek UP,LEFT,FIRE,RIGHT,DOWN gombokként, de a keyStates-ük mindnek 0
Így hiába teszem bele az elágazásokba őket, nem fogja érzékelni a program, ha megnyomtam
Remélem úgy nagyjából világos mit szeretnék elérni
-
robisz
senior tag
válasz
Alvin_ti4200 #1132 üzenetére
Mit értesz az alatt hogy "a number gombot" lenyomtad??
A "number" itt az eseménykezelő paramétere... a keyPressed MINDEN gomb lenyomásakor meghívódik, és a a number a lenyomott gomb kódja lesz. Az általad bemásolt hibaüzenet alapján azt mondom hogy valami más gond van a kódoddal.... másold be a hibás részt és kiderítjük :-)
-
Alvin_ti4200
félisten
nem működik (void typue not allowod here), feltételben mondom, hogy nem lehet használni, mive a keyPressed(int number) függvény akkor hívódik meg, ha a number gombot lenyomtad
-
robisz
senior tag
válasz
Alvin_ti4200 #1128 üzenetére
Szia!
A GameCanvas osztályon van egy getKeyStates() metódus, ezzel tudod lekérdezni a gombok állapotát. Pl.:
int keyState = getKeyStates();
if ((keyState & LEFT_PRESSED) != 0) {
// Balra gomb le van nyomva
}A user input kezelést a fő ciklusodba érdemes betenni mondjuk a renderelés elé. Az 1000 millisec sleep-elés egyébként rengeteg, így maximum 1 fps-el fog futni az animáció
Akár egy 20 millisec-es sleep-elés is megteszi. -
Alvin_ti4200
félisten
válasz
Lortech #1127 üzenetére
van két osztályom (a harmadik nem érdekes):
SPRITECANVAS.JAVA
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.util.*;public class SpriteCanvas extends GameCanvas{
public Command exitCommand;
public Sprite1 sprite;BackgroundLayer bgLayer;
LayerManager lm;public SpriteCanvas() throws java.io.IOException {
super(false);exitCommand=new Command("Kilépés",Command.EXIT,0);
addCommand(exitCommand);sprite=new Sprite1();
sprite.setPosition(25,50);
bgLayer=new BackgroundLayer();
lm=new LayerManager();
lm.append(sprite);
lm.append(bgLayer);
}void render(){
Graphics g=getGraphics();g.setColor(255,255,255);
g.fillRect(0,0,getWidth(),getHeight());int dx=0,dy=0;
int[] tomb1={25,85,145,25,85,145,25,85,145};
int[] tomb2={50,50,50,110,110,110,170,170,170};
Random rnd=new Random();
int veletlen=rnd.nextInt(8);
dx=tomb1[veletlen];
dy=tomb2[veletlen];
sprite.next(dx,dy,getWidth(),getHeight(),veletlen);lm.paint(g,0,0);
flushGraphics();}
}SPRITE1.JAVA
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.util.*;public class Sprite1 extends Sprite{
static final int width=60;
static final int height=60;public int mode=0;
static Random rnd=new Random();
static int[] frame_sequence_1={0,1,2,3,4,5,6,7,8};int framecount=0;
public Sprite1() throws java.io.IOException{
super(Image.createImage("/hello/gomb2.png"),width,height);
setFrameSequence(frame_sequence_1);
}public void next(int dx, int dy, int maxX, int maxY, int randomize){
setPosition(dx,dy);
setFrame(randomize);
}
}A lényeg az lenne, hogy a render vagy next hivások között legyen monjuk egy másodpercnyi idő, amíg a lenyomott gombot (még nincs deklarálva) meg tudom vizsgálni, hogy mi volt az. Apropó létezik olyan függvény, amely a lenyomott gomb kódját adja vissza integerben? Mert keyPressed(int number) függvény van, csak az akkor fut le, ha az adott gombot nyomom meg, nekem meg pont fordítva kéne, hogy lenyomás után el tudjam dönteni, hogy melyik számú (49-57 [KEY_NUM1-KEY_NUM9]) gomb volt az és ennek megfelelően csinálni egy szép nagy case elágazást.
A MainMidlet osztályban az egyik menüponthoz hozzárendeltem ezt az eseményt:
try{
spritecanvas=new SpriteCanvas();
spritecanvas.setCommandListener(this);
Display.getDisplay(this).setCurrent(spritecanvas);
thread=new Thread(this);
thread.start();
} catch (IOException E){
destroyApp(true);
}A Runnable interfész miatt kell bele még egy Run metódus is, ezt a Midlet legvégére szúrtam be és így néz ki:
public void run(){
try{
while((thread.isAlive())&&(spritecanvas!=null)){
spritecanvas.render();
thread.sleep(1000);}
} catch (InterruptedException E1){}
} -
Lortech
addikt
válasz
Alvin_ti4200 #1126 üzenetére
De írd le akkor, hogy mi okozza a problémát.
Példányosítasz a Timerből.
Kiterjeszted a TimerTask osztályt, implementálod a run metódusát annak megfelelően, hogy mit akarsz ismételni, amikor lejár az idő.
Példányosítasz ebből a kiterjesztett osztályból, és paraméterként átadod a Timer példányod schedule metódusának, plusz megadod az ismétlési időközt. -
Lortech
addikt
válasz
Alvin_ti4200 #1124 üzenetére
-
Alvin_ti4200
félisten
-
Sianis
addikt
válasz
Alvin_ti4200 #1121 üzenetére
Timer?
Sianis
-
Alvin_ti4200
félisten
J2ME-ben programozok NetBeans-ben és azt szeretném kérdezni, hogy hogyan tudok időzéítéseket használni? Nagyjából annyi lenne a feladat, hogy egy TiledLayerrel és egy Sprite-tal operálok, az előbbin mozgatom az utóbbit, viszont azt szeretném megoldani, hogy két pozícióváltás között legyen x másodperc, hogy ilyenkor a felhasználó lenyomhasson egy gombot (játékot készítek mobiltelefonra), aztán ha jót nyomott, akkor egy változót megnövelek, ha rosszat, akkor ugyanazt csökkentem. Tehát az idő-, és/vagy időzítéskezelés alapjait szeretném tudni Java-ban/J2ME-ben, előre is köszönöm, szakirányom egyik munkájához kellene
-
Sanyix
őstag
Hi!
Most éppen a java hálózati dolgait próbálgatom. Eddig sikerült összehoznom egy tcp szervert ami a klienstől kapott double számot megszorozza valamennyivel, és visszaküldi a kliensnek. És persze ehhez a klienst is csináltam. A DataOutput/InputStream osztályt használtam a küldésre és fogadásra, mert ezzel elég egyszerűen lehet sokféle típusú adatot küldeni. De stringet nem tud. Hogy lehet megoldani hogy mindenféle adat mehessen?
Ráadásul elég kuszának tűnik ez a tcp-s átviteli dolog, főleg az hogy folyamban jönnek az adatok. De hogyha többféle adat jön egy kapcsolaton hogy különböztetem meg a fogadónál hogy most akkor mivé próbálja visszaalakítani a nyers adatot?
Egy játék hálózati kommunikációjából indultam ki, mert ott úgy megy, hogy tcp-n keresztül kommunikál (udp-n egyszerű lenne, mert ott ugye datagramokat lehet küldeni), úgy hogy folyamatosan fenntart egy tcp kapcsolatot, és a játék protokollja valahogy úgy műxik, hogy a kliens kap egy byte számot a csomag elején, és az jelzi hogy mi lesz utána és hogy olvassa a kliens. Na de honnan tudja hogy hol kezdődik a csomag a tcp adatfolyamban (nem mindíg oda-vissza válaszolgatás van a kettő között, mert sokszor a szerver úgy magától kérés nélkül küld egy adatcsomagot)? Ezt hogy oldják meg tcp-ben? Most nem a játékot akarom leutánozni, hanem csak valami hasonló kommunikációt létrehozni.
És tudna valaki linkelni valami jó, részletes leírást java hálózatos programozásról, amiben lehetőleg példakódok is vannak?
-
rdi
veterán
Vénségemre belevágtam a javába, Eclipse alatt elkészített és kiexportált jar fájlomat szereretném lefutattni konzolban de az istennek nem megy.
NoClassDefFoundError hibát jelez, és látom, hogy ez egy ősrégi probléma és állandóan előjön, mégsem tudom megoldani...
Egyszerűen még azt sem tudom, hogy ha kibontom a jar fájlt akkor mivel tudom visszacsomagolni,
Esetleg nincs valaki aki nagyon egyszerűen el tudná mondani, hogy hova tegyem a programokat tartalmazó könyvtárat, hogyan editáljam a classpath fájlt és utána hogyan csomagoljam vissza a jart? -
PazsitZ
addikt
Sajnos nem értek a javascriptekhez, csak minimálisan, szóval nem tudok segíteni.
Viszont itt lehet hamarabb választ kapsz a kérdésedre: Javascript topic
-
Cseme
csendes tag
Szia! Sziasztok!
Segitségre lenne szükségem javascriptbe. Abszolut amatör vagyok, egyetem majdhogy szabadon választható tantárgya.
Feladat: Adott két kép: kapu és labda.
Addig kell h mozogjon a labda akapu fele, míg bele nem száll és akkor kiirja alertba h gól:
eddig ennyi van meg:<body onload="ini()">
<img src="kapu.jpg" id="kapu">
<img src="labda.jpg" id="labda"><style>
#kapu, #labda{position:absolute}
#kapu {width:250px; height:166px}
#labda{width:67px;height:64px}</style>
<script language="JavaScript">var lx=Math.round(Math.random()*500+200,0);
var ly=Math.round(Math.random()*300+10,0);
var kx=Math.round(Math.random()*450+200,0);
var ky=Math.round(Math.random()*150+10,0);var kw=250;
var kh=166;
var lw=67;
var lh=64;
var n=0;function ini(){
document.getElementById("labda").style.left=lx;
document.getElementById("labda").style.top=ly;
document.getElementById("kapu").style.left=kx;
document.getElementById("kapu").style.top=ky;if(kx<lx && lx+lw<kx+kw && ky<ly && ky+kh >ly+lh)
{alert('GOOL');}
}</script>
</body>sejtem, h cilust kellene irni és egy settimoutot belerakni...pls help
-
loszerafin
senior tag
válasz
Dj Ready #1111 üzenetére
Integer[] nums;
nums = new Integer[95];
for (int i=0; i<95; i++) nums[i]=i+1;
List<Integer> numsList = Arrays.asList(nums);
Collections.shuffle(numsList);
System.out.println(numsList.subList(0,5));Érdekes, hogy az ilyen megoldásokat részesítitek előnyben, pedig amit
[link] itt írtam, elegánsabb,
gyorsabb, rövidebb, kisebb helyigényű. -
Dj Ready
csendes tag
Halee. Én vagyok Vercetti a gdf.pganet fórumról. Megyek én is izzadni 10. -én bár én már túl vagyok Pascalo -n, ASM -en, Delphi -n, C -n. A megoldás adja magát, csak ezt rá kell ültetni specifikusan a Java nyelvre.
Ha ezt a feladatot kapom, bizony a Vector -ral fogom megoldani. Nekem érthetőbbnek tűnnek a tömbműveletek. Pl.: .add, .remove, .contains, .equals, stb. Adja magát a dolog. -
loszerafin
senior tag
válasz
loszerafin #1108 üzenetére
Egyébként az a "mellékhatása" az algoritmusnak, hogy a kihúzott számokat nagyság szerint
rendezve írja ki. -
loszerafin
senior tag
válasz
loszerafin #1107 üzenetére
Itt a Java kód:
Csak azért írom egy sorba, hogy ha vki gondolkodni akar, ne lássa rögtön a megoldást
/* */ int i=95; int x=5; while (i>0 && x>0) { if (Math.random()*i<=x) { System.out.println(i); x--; } i--; } -
loszerafin
senior tag
Annyit hozzáteszek, hogy ez egy klasszikus probléma, és van is "klasszikus" megoldása:
Képzeld el, hogy vki mondja neked a számokat sorba.
Te néha megállítod az illetőt és felírod egy papírra a számot.Hogy mikor állítod meg, az itt a kérdés.
Az egyszerűség kedvéért tételezzük fel, hogy nagyság szerint csökkenő sorrendben
mondja a számokat.Képzeld el, hogy most éppen az "i" számot mondja (azaz még i db szám közül választhatsz), neked meg még x db számot kell
kiválasztanod.
Mikor állítod meg az illetőt? Másképp fogalmazva: Mekkora valószínűséggel állítod meg?(az eredmény program tárhelyigénye: 2 egység, egyetlen ciklus van benne, ami max. 95-ször fut le)
Üdv
KL -
Lortech
addikt
Vagy rövidebben (jobbnak nem feltétlenül jobb ez sem) pl. így:
List<Integer> LottoSzamok = new ArrayList<Integer>();
for(int i=0; i< 5;i++)
{
int lsz;
while (LottoSzamok.contains(lsz=(1+(int) (Math.random() * 90))))
;
LottoSzamok.add(new Integer(lsz));
}
for(int i=0; i< 5;i++)
System.out.print("\n"+LottoSzamok.get(i));A bentvane függvényedet lehetne szépíteni, ha megállna a for ciklus már az első találatra, mert felesleges végigszaladni minden elemen, ha pl. már az első elem a keresett elem. Pl ki lehetne breakelni az eredmeny = true után. Vagy breaktől idegenkedők a for ciklus ciklusban maradási feltételéhez hozzávehetik a !eredmeny kifejezést (i<=4 && !eredmeny;), habár ezzel a + feltételvizsgálat miatt nem vagyunk sokkal előrébb. Vagy egyből return true; és akkor nem kell eredmeny valtozó se. (még egy return false; kellene ekkor a végére, hogy minden code path térjen vissza értékkel)
-
kew
senior tag
válasz
Lortech #1103 üzenetére
hja közben rájöttem, hogy ez igy mégse teljesen jo...
most ismerös segítségével sikerült, de hát bonyolultabb ez, mint ahogy elsőre gondoltamígy néz ki, ha ellenőrzi is a bevitt számot:
class Lotto2 {
static int[] szamok = { 0, 0, 0, 0, 0 };
public static boolean bentvane(int szam) {
boolean eredmeny = false;
for (int i=0;i<=4;i++) {
if (szam == szamok[i]) { eredmeny = true; }
}
return eredmeny;
}
public static void main(String[] args) {
int random_szam = 0;
for (int i=0;i<=4;i++) {
do { random_szam = (1 + (int) (Math.random() * 95)); }
while (bentvane(random_szam));
szamok[i] = random_szam;
}
System.out.println("Lottó számok: ");
for (int i=0;i<=4;i++) {
System.out.print(szamok[i] + " ");
}
}
}van még mit gyakorolnom...
-
kew
senior tag
nah igy jó, csak hát igy nincs is szükség a tömbre...
esetleg ha kiirasnal a (lottoszamok[generalt]) lenne, akkor jo, bár értelme nincs megirni ezért.
na mind1, müxik, az a lényegfor (int i = 1; i <= 5; i++) {
int generalt = 1 + (int) (Math.random() * 95);
System.out.print(generalt + " ");
} -
kew
senior tag
sziasztok!
segítsetek pliiz
készülök java vizsgámra, és próbálkozok írogatni kis szösszeneteket.
most elakadtam: lényegében kell egy lottószelvény, melyböl generál random 5 számot a konzolra.na odáig eljutottam, hogy csináltam egy 96 elemü tömböt, és for ciklussal feltöltöttem 1-95ig számokkal.
Hogy tudnék ebböl random kiiratni 5 számot? Próbáltam Math.random()-al, de úgy látom az nem erre valóköszi!
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Bestbuy játékok
- Elektromos (hálózati és akkus) kéziszerszámok, tapasztalatok/vásárlás
- Windows 11
- Asztalos klub
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Formula-1
- Mielőbb díjat rakatnának a görögök az olcsó csomagokra az EU-ban
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Intel Core i3 / i5 / i7 / i9 10xxx "Comet Lake" és i3 / i5 / i7 / i9 11xxx "Rocket Lake" (LGA1200)
- Medence topik
- További aktív témák...
- Lenovo Legion Pro 5 16IRX9
- AKCIÓ! ASUS STRIX B650E-E R7 7700 64GB DDR5 1TB SSD RTX 3080 10GB Thermaltake Ceres 500 850W
- Telefon felváráslás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- Microsoft Surface Book 3 - 15 col, i7, 32GB, GTX1660Ti
- Steam, EA, Ubisoft és GoG játékkulcsok, illetve Game Pass kedvező áron, egyenesen a kiadóktól!
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest