- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
- Hat év támogatást csomagolt fém házba a OnePlus Nord 4
- Feltalálta a Google a keresőmotort
- Huawei Watch Fit 5 Pro - jó forma
- Samsung Galaxy Watch8 és Watch8 Classic – lelkes hiperaktivitás
- Apple Watch
- Yettel topik
- Android alkalmazások - szoftver kibeszélő topik
- Poco F8 Ultra – forrónaci
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Huawei Watch Fit 3 - zöldalma
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
robisz
senior tag
A webservice publikálásnál ezt a hibaüzenetet kapom. Windows Vista alatt.
Mi lehet a baj? Azon kívül hogy a JBoss-t a Program Filesbe telepítettem.when i add to JBoss JForum.war recieve this error message:
java.lang.Exception
at org.rhq.plugins.jbossas5.util.DeploymentUtils.run(DeploymentUtils.java:99)
at org.rhq.plugins.jbossas5.AbstractManagedDeploymentComponent.invokeOperation(AbstractManagedDeploymentComponent.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.rhq.core.pc.inventory.ResourceContainer$ComponentInvocationThread.call(ResourceContainer.java:484)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):
*** DEPLOYMENTS IN ERROR: Name -> Error
vfszip:/C:/Program%20Files/JBoss/jboss-5.1.0.CR1/server/default/deploy/jforum-2.1.8.war/ -> org.jboss.deployers.spi.DeploymentException: URL file:/C:/Program Files/JBoss/jboss-5.1.0.CR1/server/default/tmp/5c4o12s-ibw41h-fvf4rtjf-1-fvfrdntm-5dx/jforum-2.1.8.war/ deployment failed
DEPLOYMENTS IN ERROR:
Deployment "vfszip:/C:/Program%20Files/JBoss/jboss-5.1.0.CR1/server/default/deploy/jforum-2.1.8.war/" is in error due to the following reason(s): org.jboss.deployers.spi.DeploymentException: URL file:/C:/Program Files/JBoss/jboss-5.1.0.CR1/server/default/tmp/5c4o12s-ibw41h-fvf4rtjf-1-fvfrdntm-5dx/jforum-2.1.8.war/ deployment failed
at org.jboss.profileservice.management.upload.remoting.StreamingDeploymentTarget.invoke(StreamingDeploymentTarget.java:313)
at org.jboss.profileservice.management.upload.remoting.StreamingDeploymentTarget.start(StreamingDeploymentTarget.java:190)
at org.jboss.profileservice.management.upload.DeploymentProgressImpl.start(DeploymentProgressImpl.java:231)
at org.jboss.profileservice.management.upload.DeploymentProgressImpl.run(DeploymentProgressImpl.java:8
at org.rhq.plugins.jbossas5.util.DeploymentUtils.run(DeploymentUtils.java:95)
... 11 more
Caused by: org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):
*** DEPLOYMENTS IN ERROR: Name -> Error
vfszip:/C:/Program%20Files/JBoss/jboss-5.1.0.CR1/server/default/deploy/jforum-2.1.8.war/ -> org.jboss.deployers.spi.DeploymentException: URL file:/C:/Program Files/JBoss/jboss-5.1.0.CR1/server/default/tmp/5c4o12s-ibw41h-fvf4rtjf-1-fvfrdntm-5dx/jforum-2.1.8.war/ deployment failed
DEPLOYMENTS IN ERROR:
Deployment "vfszip:/C:/Program%20Files/JBoss/jboss-5.1.0.CR1/server/default/deploy/jforum-2.1.8.war/" is in error due to the following reason(s): org.jboss.deployers.spi.DeploymentException: URL file:/C:/Program Files/JBoss/jboss-5.1.0.CR1/server/default/tmp/5c4o12s-ibw41h-fvf4rtjf-1-fvfrdntm-5dx/jforum-2.1.8.war/ deployment failed
at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:993)
at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:939)
at org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:873)
at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.checkComplete(MainDeployerAdapter.java:12
at org.jboss.profileservice.management.upload.remoting.AbstractDeployHandler.start(AbstractDeployHandler.java:264)
at org.jboss.profileservice.management.upload.remoting.AbstractDeployHandler.invoke(AbstractDeployHandler.java:177)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:891)
at org.jboss.remoting.transport.local.LocalClientInvoker.invoke(LocalClientInvoker.java:106)
at org.jboss.remoting.Client.invoke(Client.java:1724)
at org.jboss.remoting.Client.invoke(Client.java:629)
at org.jboss.profileservice.management.upload.remoting.StreamingDeploymentTarget.invoke(StreamingDeploymentTarget.java:305)
... 15 more[link] - az okosak ezt mondák rá. De sajnos ezzel nem v agyok előrébb.
Ez webalkalmazás, nem webservice, de ez most lényegtelen.
Ebből a hibaüzenetből nem sok minden derül ki, talán segítene ha leirnád mivel próbálkoztál, mit hova másoltál. A Program Files könyvtár is okozhat gondot, mert Sun-os JVM-el futtatva nem szokta szeretni a JBoss ha space van a home könyvtárában.
A JForum doksija szerint a war fájlt mindenképp kitömörítve kell deploy-olni (pl.: csinálsz egy jforum.war nevő könyvtárat a deploy alá és oda kitömöríted) mert van néhány fájl amit futás közben írni akar. Miközben a helyére másolod, legyen leállítva a JBoss és utána indítsd újra. Ha így csináltad akkor passz.... -
robisz
senior tag
-
robisz
senior tag
Hali!
Ha csak a képernyőről akarod eltüntetni, akkor setVisible(false). Ekkor megmarad a memóriában és egy setVisible(true)-val újra elő tudod hozni. Ha véglegesen el akarod tüntetni akkor a dispose() metódust kell meghívni, ez felszabadítja az erőforrásokat is.
Ha azt szeretnét hogy mindez a jobb felső close gombra kattintva is megtörténjen akkor ezt kell csinálnod:
Frame frame = new Frame();
// Add a listener for the close event
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
Frame frame = (Frame)evt.getSource();
// Hide the frame
frame.setVisible(false);
// If the frame is no longer needed, call dispose
frame.dispose();
} -
robisz
senior tag
Elég hajmeresztő, hogy valakiknek sikerült ilyen programot írnia Java-ban
Egyébként innen lehet leszedni régi cuccokat.. neked a JRE/JDK 6-os Update 2 kell: -
robisz
senior tag
Csókolom. Félévet lezárandó, önálló fejlesztéssel kell előrukkolni. Írtam kígyót, tanárnő mondta, hogy supi, de csináljak bele kis hálózatot is, pl szerver dobálja a kaja helyét. Kaja ugye eddig is volt, általam írt food osztály, ami x,y koordinátákat tárol egyebek mellett. A kérdés, hogy milyen stream-et használhatnék pl. tömbök vagy vektorok átvitelére? ObjectOutputStream, DataOutputStream vagy egyéb? Illetőleg, ha valaki valami szintaktikailag helyes forrást tudna mutatni bárhol, azt megköszönném. Konkrétan ilyesmit nem találtam, ezért kérdezem. Remélem nem dob ki senkinek elsőre a google ilyet,mert akkor elsüllyedek

Köszi előre is
Igen, ahogy Te is írtad az ObjectOutputStream/ObjectInputStream párossal lehet bármilyen objektumot kiírni illetve beolvasni. Itt egy példa ami fájlba ír, de ugyanígy lehet Socket-be is.
-
robisz
senior tag
Halihó!
Na akkor a tisztánlátás kedvéért: Java-ban ugye vannak a primitív tipusok (kisbetűs int, byte, char satöbbi) és az objektum típusok (Object és leszármazottai).
A primitíveknél tiszta sor, hogy sima érték szerinti paraméterátadás van.
Az objektumoknál az okozza a kavarodást, hogy egy változó valójában egy referencia a valódi objektumra. Ez ugyanúgy működik mint egy pointer csak el van rejtve a programozó elől, hogy hova mutat, nem lehet vele pointer műveleteket végezni stb.
Amit irtál az igaz, az objektum típusú változóknál is érték szerint történik a paraméterátadás, de ilyenkor a referencia értéke másolódik át. Azaz lesz egy másik referenciád ami ugyannarra az objektumra mutat. Tehát ha a metóduson belül módosítod az objektumot, akkor az eredeti is módosulni fog. Ha viszont a referenciának új értéket adsz (értékül adsz neki egy másik objektumot) azzal azeredeti referenciát nem változtatod meg azaz továbbra is az eredeti objektumra fog mutatni.Tehát a lényeg hogy az objektumoknál a referencia érték szerint adódik át, de mivel az eredeti objektumot tudod vele módosítani, így a működése a cím szerinti paraméterátadáshoz áll közelebb. Ezért szerintem a definíció is csak a fenti magyarázattal együtt lehet teljes.
UI: aztán persze vannak kivételek (pl. távoli eljárások, RMI) amikor ténylegesen az egész objektum lemásolódik de az már egy másik téma.
-
robisz
senior tag
Most 65% a hatar, de azert illene jobban teljesitenem. Az eddigi peldak alapjan azt latom, hogy eleg sok nyakatekert kerdes van, de ahogy te is irtad, a problemas pontok nagyon hasonloak...par gyakorlo teszt utan mar figyel ezekre az ember.
Neked voltak swinges kerdesek a tesztsorban? Kliensoldalon meg sosem fejlesztettem java-ban (es nem is szeretnek)...nem bannam, ha ezekre nem kellene felkeszulnom.Semmi swing-es vagy gui-s cucc nem volt csak a legalapabb Java csomagok, java.lang, java.io, java.net, collections...

-
robisz
senior tag
SCJP-s tesztsorokat nezegetek par napja. Van par elmeroggyant pelda

Egyik kedvencem:import java.io.*;
class Player {
Player() {
System.out.print("p");
}
}
class CardPlayer extends Player implements Serializable {
CardPlayer() {
System.out.print("c");
}
public static void main(String[] args) {
CardPlayer c1 = new CardPlayer();
try {
FileOutputStream fos = new FileOutputStream("play.txt");
ObjectOutputStream os = new ObjectOutputStream(fos);
os.writeObject(c1);
os.close();
FileInputStream fis = new FileInputStream("play.txt");
ObjectInputStream is = new ObjectInputStream(fis);
CardPlayer c2 = (CardPlayer) is.readObject();
is.close();
} catch (Exception x) {
}
}
}What is the result?
A). pc
B). pcc
C). pcp
D). pcpc
E). Compilation fails
F). An exception is thrown at runtimeFuttatas es kis guglizas utan egyertelmu, de a vizsgan papir+ceruza komboval egy ilyen kerdest tuti bebuknek. Kivancsi vagyok mit szoltok ehhez.
Voltam már ilyen vizsgán és - habár ez a feladat különösen szivatós - alapvetően hasonló jellegű kérdésekből állt. Azaz a Java nyelv ismerete mellett egy kis logikázásra is szükség lesz. Azért nem kell megijedni ennél jóval könnyebbek is vannak és ha jól emlékszem 50% felett van meg a vizsga.
-
robisz
senior tag
-
robisz
senior tag
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
-
robisz
senior tag
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

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 :-)
-
robisz
senior tag
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.Egyébként keyPressed(int number) függvényt is használhatod, hiszen a paraméterként megkapott integer az épp a lenyomott gomb kódja lesz. Ez alapján megcsinálhatod az elágazást case-zel.
-
robisz
senior tag
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){}
}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. -
robisz
senior tag
Erre nem lehet általános érvényű választ adni, mindig attól függ mire van szükség. Ha egy kicsit is komolyabb rendszerről van szó akkor kizárólag a fájlban való tárolás nem igazán elfogadható, adatbázist és valamilyen objektum-relációs eszközt kell használni (Pl: Hibernate, Entity bean-ek vagy valami saját implementáció).
Az XML-nek a rendszerintegrációban van komoly szerepe, magyarul ha olyan más rendszerrekkel is szeretnél kommunikálni aminek pl köze sincs a Java-hoz. Egy XML dokumentumot ugyanis többnyire minden jelentős nyelvben vagy rendszerben fel lehet dolgozni könnyedén. Ha ilyesmire egyáltalán nincs szükséged (ami éles helyezetekben elég ritka), akkor felesleges bajlódnod vele, mert az XML generálás és parsolás némi teljesítmény csökkenéssel jár. -
robisz
senior tag
Hát azt senki nem mondta, hogy ha te kivül válozókat deklarálsz, akkor azt az Interpreter látni fogja (hogyan is láthatná
)
Szóval vagy magában a beanshell scriptben (amit az eval-nak átadsz) deklarálod a változót, vagy pedig megmondod az Interpreter-nek az értékét, valahogy így:i.set("a", 1);
i.set("b", 2);
i.eval(...) -
robisz
senior tag
-
robisz
senior tag
Köszi! Nem szeretném magam lekódolni, azt majd később

Amúgy úgynézki megtaláltam a nekem megfelelő parancsot, az eval()-t. Bár fura mert mert a példákban azt írja hogy ezt így simán be kell írni. Semmi objektum, semmi csomagútvonal.Egyébként netbeanst használok, de nem igazán tudom hova kéne rakni ezt a jar fájlt, mert van vagy 8 modules mappa tele jar-okkal.
A lényeg, hogy a jar fel legyen véve a classpath-ba, én nem használok netbeans-t,
de gondolom az Eclipse-hez hasonlóan abban is lehet jar-okat adni a projekt-jez.
Egyébként a beanshell-ben először egy Interpreter object-et kell létrehozni és azon lehet hívni az eval() metódust. -
robisz
senior tag
Szia!
A beanshell nevű csomag a te barátod: [link]
Ha azonban te magad szeretnéd lekódolni akkor már nem olyan egyszerű a dolog, kell hozzá némi fordítóprogram elméleti ismeret. Röviden: írnod kell egy parser-t ami tulajdonképpen egy szintaktikai elemző és egy interpretert, ami "végrehajtja" a scriptet. Javaslom nézz utána neten, mert nem igazán lehet egy fórum hsz-ben kifejteni a részleteket.
-
robisz
senior tag
sziasztok!
egy gyors help kéne, mert a neten nem találtam értelmes leírást konkrétan...
van egy timestampem amilyet a php generál. így néz ki, a 1970.jan.1-től eltelt másodpercek száma: 1185794460.
ezt egy java .class fájlnak a php-ből paraméterként adom át.
mindenképpen INT-ként megy át az anyag, mert számolni is kell majd ott vele.
viszont ki is kell íratni a képernyőre, viszont elég lenne csak az órák számát.
tehát
input: 1185794460
output: 13
(2007-07-30 13:21:00 <=> 1185794460)
na erre kellene valami függvény, getHours(), függvény nálam nem ment. de lehet hogy rosszul használtam? vagy valami másikat kellett volna?
köszi előre is
[Szerkesztve]Helló!
A megoldás:
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(time);
int hours = Calendar.get(Calendar.HOUR_OF_DAY);
Csak arra vigyáz, hogy te azt irtad, hogy másodpercben van meg az idő, a
Java meg millisec-ben kezeli... Akkor fogod, oszt' felszorzod 1000-el mielőtt
''besetelnéd''
-
robisz
senior tag
-
robisz
senior tag
Szia!
Ha free cucc kell, akkor gyakorlatilag az Eclipse vagy a Netbeans között választhatsz.
Az Eclipse talán valamivel népszerűbb én is azt használom.
Ha full kezdő vagy akkor az első szárnypróbálgatásoknál melegen tudom ajánlani
a notepad + parancssor kombót is!
-
robisz
senior tag
Sziasztok!
egy halozati chat programot szeretnek irni, egy dolgon akadok el: Ugy szeretnem megcsinalni, hogy a privat uzenetek kulon tabokra jojjenek, a tab neve az lesz, ami a kuldo neve. Ezekre a tabokra kerul egy-egy jtextarea, amit en meg kellene tudjak cimezni akkor is, hogyha az adott tab nincs felul. Van erre valami otletetek?Csak én nem értem a kérdést?

Fejtsd ki bővebben kicsit pls
-
robisz
senior tag
Őőő... számomra az ablak bezárása azt jelenti, hogy ráklikkelsz a jobb felső
sarokban a bezárás (X) gombra
A WindowListener windowClosed metódusa ebben az esetben hívódik meg.
Ha jól értelmezem Te valami mást szeretnél, talán az Ok vagy Cancel gomb
lenyomására szeretnél végrehajtani valami kódot?
Írd le kicsit bőbeszédűbben, hogy pontosan mit akarsz, pls
-
robisz
senior tag
-
robisz
senior tag
-
robisz
senior tag
Hali!
[link]
Ezzel a metódussal szeretném azt csinálni, hogy lehessen szerkeszteni az elemeket. A szerkesztés már megy is szépen, de ha üres a lista, akkor csak egy üres elem legyen.
Errefel IndexOutOfBoundsException-t kapok, holott én ellenőrzöm, hogy üres-e a lista.
Hol itt most a hiba?
SianisCopy-zz be egy stacktrace-t pls.
-
robisz
senior tag
Hali
Hát igazából már megoldottam egy kicsit butábban. Eclipse-hez installált Visual Editorral létrehoztam egy Application-t amibe egy Jframe majd ebbe egy Jpanel van ültetve. Ezt mint legenerálta nekem.
Aztán elkérem a jPanel Graphics-át és azzal ki tudom rajzolni azt a pár négyzetet meg vonalat amire szükségem van.
Amúgy kössz a segítséget. Ahogy elnézem kb arra jöttem rá ami a második tutorialban van
Üdv.Igen, saját komponens készítéséhez a JPanel is ugyanolyan jó.
A JFrame-t nem irtam, mert az alap, minden Swing-es alkalmazáshoz kell
-
robisz
senior tag
Hi allz!
Régóta programozom java-ban. Elsősorban kötelezőprogramokat.
Most viszont egy ablakos rendszert kellene készítenem. Milyen konténert ajánlanátok amiben tudok rajzolni könnyen vonalakat és pontokat, AWT-t vagy Swing-et használjak és abból is mi az ajánlott a rajzoláshoz.
Előre is köszi.Helló!
Érdemes Swinget használni mert az AWT-nek meglehetősen korlátozottak a lehetőségei,
viszont maga a Swing is az AWT-re épül így nem árt mindkettőt megtanulni
Amit Te szeretnél azt a következőképpen lehet megcsinálni:
-Létrehozol egy saját komponenst a JComponent-ből való származtatással.
-Felüldefiniálod a paintComponent(Graphics g) metódust. Ebben a metódusban
kell lekódolni a rajzolást.
-Rajzolni a Graphics2D objektum megfelelő metódusaival tudsz (pl drawLine).
Érdemes elolvasni a Java tutorial ide vonatkozó fejezeteit: [link] [link] -
robisz
senior tag
-
robisz
senior tag
for ciklus
Nem fér a fejembe a for ciklus indító részének első tagja, a deklarációs rész:
for(int i=0; i<10; i++){
}
Félkövérrel szedtem a kérdéses részt. Itt ugye lehet több lokális változót deklarálni és inicializálni, ami csak a cikluson belül lesz elérhető, így:
for(int i=0, j=0, k=0; i<10; i++){ ...
Nem csak int lehet ott, hanem bármi, amin végig lehet lépkedni:
for(byte i=0, j=0, k=0; i<10; i++){ ...
Ami nekem furcsa, hogy keverni nem lehet a típusokat, azaz ez már nem megy:
for(int i=0, byte j=0, short k=0; i<10; i++){...
De még csak ez se fordul le:
for(int i=0, int j=0, int k=0; i<10; i++){...
Nem értem, miért ez a megszorítás? Miért jó,hogy csak ugyanolyan típusú változókat deklarálhatok és inicializálhatok? (Ráadásul a doksikban se igen találtam erre utalást:
http://java.sun.com/docs/books/jls/third_edition/html/statements.html#14.14.1)
Előre is köszönöm
KLA for ciklus általános szintaxisa:
for (kifejezés1; kifejezés2; kifejezés3) {
...
}
Tehát három tetszőleges kifejezést kell megadni (lehet üres kifejezés is).
Viszont a Java-ban nem tudsz egy kifejezéssel különböző típusú referenciákat
létrehozni, tehát az alábbi deklaráció nem csak a for ciklusban, hanem mindenhol hibás:
int i = 0, byte j = 0;
Pontosvesszővel elválasztva már jó de így már két kifejezésnek számít:
int i = 0; byte j=0;
Azonos típusú változóból viszont többet is létrehozhatsz egy deklarációval:
int i = 0, j=0;
Ezt tehát nyugodtan beírhatod a kifejezés1 helyére. -
robisz
senior tag
Khm. Bocs, hülyeséget írtam. De legalább most, hogy rákérdeztél, magam is rájöttem.
Tehát javítom magam:
Nem tűnik el se a forrásfájlból (hiszen ez az értelme),
se a lefordított kódból (sajnos), hiszen a java futtatót kell paraméterezni az assertion-ök ki/bekapcsolásához.
Viszont nagyon kényelmesen kezelhető (parancssorból ki/bekapcsolható), osztályokra és csomagkönyvtárakra külön-külön, és nem lassítja a kódot, ha nincs bekapcsolva.Ugyanezt el tudod érni a Logger-ból is, hiszen vannak loglevelek amiket be tudsz állítani

Pl. a kódba azt írod hogy:
log.debug(message);
Így a loglevel-t debug-ra állítva megjelenik az üzenet, de pl. info-ra állítva nem.
Az assert szintén debug-olásra használható, de nem logolásra!!
Arra találták ki, hogy olyan logikai állításokat helyez el a kódban, amelynek
az adott ponton teljesülnie kell. Ha mégsem akkor az kivált egy exception-t.
Amire Te használod, az ugyan működik, de nem szép mert nem erre találták ki. -
robisz
senior tag
Az volt a para, hogy a htm file bírálta felül. :S
Na más egyszerűbb kérdésem van. Appletet kell csinálni, írtam egy filet IntervalException.java néven, ahol van. Az importálásához kell még valami, hogy lássa? Elég idegesítő, hogy Unixon kell fejleszteni(ssh loginnal), így elég nehézkes, míg valamit kipróbálgtok...Az volt a para, hogy a htm file bírálta felül.
Így kell működnie, html-ből lehet beállítani az applet méretét.
A másik kérdésed nem pontosan értem, ha nem ugyabban a package-ben vannak
akkor kell importálni.
Ha a lefordított class-t nem találja a Java akkor meg fel kell venni a classpath-ba,
vagy applet esetén úgyis egy jar-ba kell csomagolni őket. -
robisz
senior tag
debug üzenetek
Gondoltam jó lenne pár debug üzenet, és erre kézenfekvő az assert-et használni, úgyhogy csináltam egy Log osztályt:
class Log {
static int Level = 6;
public static boolean log(int level, String s){
if (level>=Level) System.out.println(s);
return(true);
}
public static boolean dlog(int level, String s){
if (level>=Level) {
new Throwable().printStackTrace();
log(level,s);
};
return(true);
}
}
Ezt a programban így lehet használni:
assert Log.log(5,''itt vagyok'');
assert Log.dlog(7,''itt vagyok'');
A log csak az üzenetet írja ki, a dlog a stack-et is.
Van erre valami bejáratott út, vagy megfelelő ez?
Előre is köszönöm
KLSzia!
Logolásra a java.util.Logger osztály a megoldás (ez nem túl régen
került a Java-ba), vagy pedig a log4j csomag amit külön kell letölteni
és talán még az előbbinél is többen használják. Tudásban kb. ugyanaz a kettő. -
robisz
senior tag
Sziasztok,
Kb. már tisztában vagyok a Java alapokkal, szerintetek hogyan tovább, mit tanuljak?
UML-t látom hasznosnak meg a Design Pattern-eket. Vagy esetleg mást?
Gondolkodtam a konkurrens programozás elméletén, ami jól jöhet a szálak írásakor, de ez talán csak később kellhet.
Azután itt van a unit tesztelés, javadoc, i18n.
Persze, gyakorlatot kellene szereznem, de nem akarok rossz (=gyenge minőségű) programokat írni, gyakorlás képpen sem.
Előre is köszönöm
KLHa később komolyan akarsz Javazni, esetleg ilyen téren szeretnél dolgozni,
akkor egyet ajánlok: J2EE.
Ha a ''sima'' Java már elég jól megy, akkor mindenképp érdemes megismerkedni vele.
Az UML és a Design Pattern-ek ismerete mindig (de J2EE-hez különösen) jól jöhet! -
robisz
senior tag
Ha jól értem a JVM-ek működését az olvasmányaim alapján, akkor nincs garantálva, hogy időosztásosan működjenek a JVM-ek. Azaz, ha azt akarom, hogy a többi szál is labdába rúghasson, kell sleep()-et tennem a hosszan futó ciklusaimba. Vagy tévedek?
Tehát nem a lock az érdekes itt, hanem hogy egy szál nem engedi futni a többit, mert nincs benne sleep és sose áll le.Ha jól értem a JVM-ek működését az olvasmányaim alapján, akkor nincs garantálva, hogy időosztásosan működjenek a JVM-ek. Azaz, ha azt akarom, hogy a többi szál is labdába rúghasson, kell sleep()-et tennem a hosszan futó ciklusaimba.
Igazából a yield() metódust találták ki megoldásként erre problémára, de sajnos
kínszenvedés a használata mert nagyon nem egyértelmű mikor kell meghívni.
(Valami olyasmit lehet elképzelni, hogy pörgetsz egy számlálót a ciklusodban és
minden 10-edik futáskor meghívod a yield()-et vagy valami hasonló)
Szerencsére azonban ez a probléma a ''való életben'' elég ritkán fordul elő,
hisz az ember általában olyan szálakat ír amelyek egyébként is blokkolnak.
Pl. mert egy socket-ről akarsz olvasni vagy vársz egy beérkező üzenetre... stb. -
robisz
senior tag
Sziasztok!
Nekem egy Sony Ericsson P800asom van, és az a problémám, hogy amikor feltelepitek egy JAR fájlt a telefonra, és amikor elinditom, megjelenik, hogy ''MIDlet inditása'' és utána nem történik semmi. Esetleg nem tudna nekem valaki segiteni, hogy mi lehet a probléma? Újabb java-t kéne rá tennem? (amit nem találok a neten sehol :S )
Kérlek segitsetek!Nem ismeres a telót de szerintem JAD fájl is kell neki vagy az is elképzelhető,
hogy a JAR fájl nem kompatibilis a telefonoddal. -
robisz
senior tag
Köszönöm mindkettőtöknek,
substring(startindex, startindex + 10)
Így könnyen megjegyezhető.
Közben találtam egy újabb ''fejfájást'':
A Calendar osztály set metódusában a hónapok 0-tól kezdve számozódnak, míg az év és a nap természetesen 1-től indul
De ezt csak mint érdekességet írom, nem fontos reagálni rá, és azt hiszem, abbahagyom a ''különös'' dolgok beírását a fórumba, talán fárasztó már, meg úgyis parttalan...
A Calendar osztály set metódusában a hónapok 0-tól kezdve számozódnak, míg az év és a nap természetesen 1-től indul
Igen ez tényleg furának nevezhető, de a Calendar osztály estében az előre definiált
static konstansokat (JANUARY, FEBRUARY stb...) illik használni, innentől kezdve
pedig édesmindegy hogy a január a háttérben 0 vagy 5000
-
robisz
senior tag
Persze hogy egyértelmű. Az lenne a csuda, ha nem az lenne.
Azonban cseppet sem logikus.
Láthatod, a bemásolt leírásod is körmönfont:
beginIndex-ről és endIndex-ről ír, holott a substring vége _nem_ az endIndex-nél van, hanem endIndex-1 -nél.
Ugyanilyen ''logikával'' akár lehetne a string vége endIndex-17 -nél. Ekkor pl.
substring(0,17)-re kapnánk meg az első karakterét a stringnek.
[Szerkesztve]Ugyanilyen ''logikával'' akár lehetne a string vége endIndex-17 -nél. Ekkor pl.
substring(0,17)-re kapnánk meg az első karakterét a stringnek.
Lehet hogy elsőre furcsának tünik, de azért van benne némi logika
Ha csíkokat rajzolsz a string karakterei közé így:
| H | e | l | l | o |
akkor a substring-nek azt kell megadni, hogy melyik két ''csík'' közötti részt
kéred (0-tól kezdve az indexeket).
További előny, hogy az endIndex és a startIndex különbsége így pont az
eredmény hossza lesz. Tehát így is hasznáhatod:
substring(startindex, startindex + 10)
Ami visszaadja a startindex-től kezdődő 10 hosszúságú stringet.
[Szerkesztve] -
robisz
senior tag
Ugye? Megfeküdtem, amikor arról olvastam, hogy az == és != másképp viselkedik
Character, Short és Integer típusoknál -128..127 ig, míg a fölött és alatt.A gyakorlatban ugyan ennek vajmi kevés jelentősége van, mert az Integer
érték egyenlőségét úgyis equals-al vizsgáljuk, de ez akkor is... meghökkentő
-
robisz
senior tag
-
robisz
senior tag
-
robisz
senior tag
Köszi, megnézem később. Most van egy könyvem, azon rágom át magam éppen.
Ezt ismeri valaki?
Kérdés: Mit ír ki a program? (Figyelem! Tilos begépelni és kipróbálni, előbb tippelni kell!)
class Equal {
public static void main(String[] args){
Integer i,j;
i=10; j=10;
System.out.println(i==j);
i=1000; j=1000;
System.out.println(i==j);
}
}
(Persze az igazi kérdés inkább az, hogy miért van ez így?)
[Szerkesztve]false, false

Tipikus autoboxing kérdés, amit így is meg lehet fogalmazni:
while (i<=j && i>=j && i!=j) {
;
}
Hogyan deklaráljuk i-t és j-t hogy a fenti ciklus végtelen legyen? -
robisz
senior tag
Eclipse is van linux-ra. Szubjektív véleményem szerint azzal jobban jársz

-
robisz
senior tag
-
robisz
senior tag
-
robisz
senior tag
-
robisz
senior tag
Szerintem érdemes kezdőként a parancssoros javac.exe-vel ''szenvedni''
Igen, ez az elfogadott nézet, én ezzel szemben azt vallom, hogy ''advanced'' szinten érdemes vele foglalkozni, és akkor már komolyabban, mert kezdőként hiába be tudja pötyögni azt a parancsot, csak annyit lát, hogy kiadta a parancsot, lett egy programb (vagy nem), és akkor örül neki, de ennyi.Ízlés kérdése, én nem értek veled egyet

Azért nem olyan bonyolult ez a javac.exe, hogy bárki aki valaha látott már parancssort,
ne tudná használni. Kétségtelen hogy kezdetben lehet vele szívni, de legalább megérted
hogyan működnek a package-ek, a classpath, meg úgy általában a compiler.
Kíváncsi vagyok mit csinál az a kezdő user aki elindít egy Eclipse-t és mondjuk
classpath-t vagy JVM paramétereket kell állítania... azon kívűl, hogy néz nagyokat
-
robisz
senior tag
Érdemes felvenni a JDK bin könyvtárát a PATH-ba.
Szerintem érdemes kezdőként a parancssoros javac.exe-vel ''szenvedni'',
mert különben nehezen fogod megérteni mi történik a háttérben.
Komolyabb munkához viszont valóban elkerülhetetlen valami IDE használata. -
robisz
senior tag
Mégsem világos.
Ha SUNDAY, MONDAY, stb. objektumok jönnének létre (amik Day típusúak), akkor nem
Day day = Day.MONDAY;
sorral használnám, hanem
Day day = MONDAY;
sorral.
A
Day day = Day.MONDAY; ből inkább az következik,
hogy már létezik egy Day osztály, aminek van egy MONDAY field-je, ami szintén Day típusú (!?)
Esetleg a Day osztálynak SUNDAY,MONDAY, stb. alosztályai, de ezt nem gondoltam még végig....
Persze, mondhatnánk, hogy ez teoretikus fejtegetés, de azt hiszem, hogy amíg az ember nem érti teljesen a dolgok működését (vagy legalább nincs egy jó modell a fejében), addig nem is tudja használni. A Java pedig a szerszámom lesz, jó, ha megismerem...A SUNDAY, MONDAY stb.. olyanok mintha a Day osztály statikus field-jei lennének,
(a compiler azzá is alakítja őket a háttérben) ÉS egyúttal Day típusú objektumok.
A kettő korántsem zárja ki egymást!
Így már gondolom érthető a
Day day = Day.MONDAY;
írásmód, hiszen a Day osztály statikus field-jére hivatkozol, ami egy Day típusú
objektum. Pontosan ahogy te is leírtad.
Ha akarod írhatod így is:
Day day = MONDAY;
de akkor a statikus importot kell használnod:
import static Day.*;
és ezzel gyönyörűen visszakanyarodtunk a legelső kérdésedhez
[Szerkesztve] -
robisz
senior tag
Köszönöm, most már értem.
Azaz az enum-ban levő konstansok-nak megfelelő objektumok jönnek létre, számszerint 7,
ezek immutable-ek, és tölem függetlenül, a kódom elindulása előtt elkészülnek.
Én a
Day day = Day.MONDAY; sorral a már kész statikus objektumokat használom.
Így az is érthető, hogy hogy tud működni a Day.values(); hiszen a már létrejött 7 objektumon végig tud menni rendszer.
[Szerkesztve]Pontosan így van

Az enum egy speciális osztály a Java-ban (ami egyébként a java.lang.Enum
leszármazottja lesz) a benne szereplő ''konstansok'' pedig sima objektumok.
Egyik nagy előnyük, hogy switch-ben is használhatóak. -
robisz
senior tag
Köszi a választ, de a példámat értem, hiszen én hoztam létre.
(Sőt, csináltam egy rövidke tutorialt, hátha elfelejteném vmikor:
[link]
)
Egyedül az nem világos, hogy ki, mikor hívja meg a Day konstruktort, mert használat közben én nem hívom meg:
Day day = Day.MONDAY;
Olyat nem is enged a fordító, hogy
Day day = new Day(''Monday'');Egyedül az nem világos, hogy ki, mikor hívja meg a Day konstruktort
Ez is benne volt a válaszomban csak talán nem volt elég világos:
A MONDAY(''Monday'') sor az enum kódjában egyenértékű az általad leírt
konstruktorhívással. Olyan mintha statikus változót hoznál létre valahogy így:
Day MONDAY = new Day(''Monday'');
Tehát azzal hogy felsoroltad a 7 napot az enum-ban, egyúttal a konstruktor
is meghívódott mind a 7 alkalommal.
Kivülről nem tudsz új példányokat létrehozni az enum-ból, de nem is nagyon lenne értelme. -
robisz
senior tag
Sziasztok
Van egy kérdésem az enum típussal kapcsolatban:
enum Day {
SUNDAY (''Sunday''),
MONDAY (''Monday''),
TUESDAY (''Tuesday''),
WEDNESDAY (''Wednesday''),
THURSDAY (''Thursday''),
FRIDAY (''Friday''),
SATURDAY (''Saturday'');
public final String dayname;
Day(String dayname) {
this.dayname = dayname;
}
public String toString(){
return (this.dayname);
}
}
Ez működik, meg használni is tudom. A kérdésem inkább elméleti jellegű:
A constructor-nál nem világos a paraméter szerepe.
( Day(String dayname) )
Hiszen így használom:
Day day = day.SUNDAY;
Akkor meg hogy kerül oda az a String dayname paraméter? Ez valami trükk, hogy a Java fordító az ilyen day.SUNDAY kifejezéseket átalakítja constructorhívássá, úgy hogy a SUNDAY-nak megfelelő szöveget (''Sunday''), odateszi paraméternek?
Azt megfigyeltem, hogy a constructor-t csak a kellő számú, típusú és sorrendű paraméterrel lehet megírni.
Persze használni kényelmes, de nem látom át, mi is történik itt valójában...
Előre is köszönöm
KLSzia!
Az enum típusra úgy érdemes gondolni mint egy sima osztályra.
Annyi a különbség, hogy ebből az osztályból közvetlenül sosem hozunk
létre példányokat, csak az előre definiált ''konstansokat'' használhatjuk.
A példában tehát létrejön egy Day ''osztály'' és annak a 7 példánya (SUNDAY,
MONDAY, stb...)
Legegyszerűbb formában tehát az enum így nézne ki:
enum Day {
SUNDAY,
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY;
}
Mint minden sima osztályban az enum-ban is írhatunk metódusokat, tárolhatunk
egyéb adatokat.
Alapból a toString() metódus a konstans nevével megegyező string-et ad vissza,
tehát a System.out.println(Day.MONDAY) eredménye ''MONDAY''.
A te példádban az enum-ban tárolunk egy dayname string-et is. Itt jön be
a képbe a konstruktor szerepe. Igaz te kivülről sosem hivod közvetlenül a
konstruktor-t, de a SUNDAY(''Sunday'') sor az enumban valójában egy konstruktor
hívást jelent, azaz a ''Sunday'' string eltárolodik a dayname változóba.
A toString metódust is felüldefiniálódik a te példádban, mégpedig úgy, hogy ezt a
dayname String-et adja vissza. Igy a System.out.println(Day.MONDAY) eredménye
''Monday'' lesz ''MONDAY'' helyett.
Azt hogy milyen adatokat tárolsz az enum-ben és milyen konstruktorokat írsz
te döntöd el, csak a konstansok felsorolásánal (SUNDAY, MONDAY stb) a megfelelő
számú és típusú paramétert kell átadni.
[Szerkesztve] -
robisz
senior tag
Sziasztok
Elkezdtem tanulni a Java-t, és van egy kérdésem:
Szeretném a PI konstansot használni a programomban.
Ehhez a következő importot kell beírnom:
import static java.lang.Math.*;
Miért kell import static ? Miért nem jó :
import java.lang.Math;
import java.lang.Math.*;
Egészen konkrétan a kérdésem:
A
import java.lang.Math;
import java.lang.Math.*;
sorok miért nem importálnak minden public dolgot? Miért kellett különbséget tenni
a Java fejlesztésekor a konstansok és az osztályok/interfészek/metódusok importálása
között?
Előre is köszönöm
KLSzia!
A static import viszonylag új dolog a Java-ban az 1.5-től kezdve jött képbe.
A hagyományos import arra jó, hogy a package név kiirása nélkül hivatkozhass
osztályokra. Ha például azt írod, hogy
import java.util.HashMap;
akkor a kódban simán HashMap-ként hivatkozhatsz a java.util.HashMap osztályra.
Az import java.lang.Math.*; értelmetlen, mivel az osztályon belüli dolgokat
nem lehet beimportálni a sima importtal.
A Math osztályra egyébként már eleve hivatkozhatsz rövid névvel, mivel az a java.lang package-ben van. Ez az egyetlen package amit soha nem kell beimportálni, mert mindig alapból be van importálva.
Az ''régi'' import esetén tehát a package név elhagyható, de nem
az osztálynév! Java 1.5 előtt tehát a PI konstansra úgy tudtál hivatkozni, hogy
Math.PI
Itt jön be a statikus import a képbe, mivel pont arra találták ki, hogy statikus
változók használatakor ne kelljen beirni az osztály nevét sem.
Ha tehát azt mondod, hogy
import static java.lang.Math.PI;
akkor attól kezdve sima PI-t irhatsz a kódban.
Az interfészek, osztályok importja között nincs különbség.
[Szerkesztve] -
robisz
senior tag
Letöltöd a Javat meg a Netbeanst, installálsz, kinyitod a Java könyvet az első oldalon
vagy beírod a google-ba, hogy ''hello world java'', rákattintasz a netbeans ikonjára,
be copy-paste-eled a programot, build-elsz, futtatsz és örülsz. Ezt így, úgy!
-
robisz
senior tag
Helló!
Alap Java-val azt nem tudod szépen megcsinálni, sajnos a text console-hoz
nem készült olyan platformfüggetlen API mint az AWT a gui esetében...
Létezik viszont egy jcurses nevű package, ami kifejezetten ''text gui'' készítésére
alkalmas és többféle platformra is letölthető: [link]
Ezzel meg lehet csinálni...
-
robisz
senior tag
-
robisz
senior tag
Szia Robi
A hibauzenetbol arra kovetkeztetek, hogy valamiert tobbszor is
betoltodik az osztaly amiben betoltod a dll-t.
Tomcat-et hasznalsz? Nezd at figyelmesen, milyen jar-okat tettel be,
egyik osztalyod se legyen benn ket peldanyban.
Leellenôríztem: minden osztály csak egy példányban van benn.
Amit észrevettem a második getInstance függvény híváskor hal ki.
Ez egy static függvénye a mynativefuncs.dll wrapper osztálynak.
static Imynativefuncswrapper mynativefuncswrapper::getInstance()
És valamiért nem látja az elôbb betöltött osztályt. Ezért betolja megint, s persze meghívja a dll betöltést:
static {
System.loadLibrary(''mynativefuncs'');
}
és a dll-t már látja hogy be van töltve
Hááát... nagyon úgy tünik, hogy két különböző ClassLoader
is betölti az osztályodat. Ez pedig akkor szokott előfordulni,
ha a Tomcat valamiért két példányban látja... pl. ha benn van
a tomcat lib könyvtárában és a war fájlban is.
Próbálj meg valami hasonló kiíratást a static blokkodban:
static {
System.out.println(Osztalynev.class.getClassLoader());
System.loadLibrary(''mynativefuncs'');
}
Nezd meg mit ir ki az elso es a masodik betolteskor, ebbol talan
lehet kovetkeztetni valamire.
-
robisz
senior tag
java.exe-nek -classpath paraméter.
-
robisz
senior tag
-
robisz
senior tag
A következő problémám lenne: java+mysql kapcsolatot akarom kipróbálni. Itt a kód:
import java.sql.*;
import java.util.*;
public class ConnTest {
public static void main(String[] args){
Connection conn = null;
try{
String userName=''********'';
String password=''*******'';
String url=''jdbc:mysql://valami.hu'';
Class.forName (''conn.mysql.jdbc.Driver'');
try{
conn=DriverManager.getConnection(url,userName,password);
System.out.println(''Adatbázis-kapcsolat létrejött!\n\n'');
}
catch (SQLException ex){
System.out.println(''SQLException: '' + ex.getMessage());
System.out.println(''SQLState: '' + ex.getSQLState());
System.out.println(''VendorError: '' + ex.getErrorCode());
}
}
catch (Exception ex){
System.err.println(''kapcsolódási hiba: '' + ex.getMessage());
}
finally{
if (conn!=null){
try{
conn.close();
System.out.println(''Adatbázis-kapcsolat vége!'');
}
catch (Exception ex){
}
}
}
}
}
Ezzel száll el: kapcsolódási hiba: conn.mysql.jdbc.Driver. mysql honlapjáról szedtem le drivert, de lehet rosszat és rossz helyre raktam. Valaki tudna segíteni? Mit és hova másoljak pontosan, hogy müködjön?
A drivert hozzaadtad a classpath-hoz?
-
robisz
senior tag
Sziasztok:
Következô a problémám: van egy dll-em, java native függvényekkel.
E köré írtam egy osztályt, amelyik meghívja ezeket a függvényeket, A dll betöltésére a következô kódot használom (az osztályon belül):
static {
System.loadLibrary(''mynativefuncs'');
}
A következô a gond: ha servlet használja ezt az osztályt, akkor a második hívásnál a következô hibaüzenetet kapom:
Error: Native Library C:\WINDOWS\system32\mynativefuncs.dll already loaded in another classloader.
Valami ötlet, hogyan lehetne ezt elkerülni?
[Szerkesztve]Hello!
A hibauzenetbol arra kovetkeztetek, hogy valamiert tobbszor is
betoltodik az osztaly amiben betoltod a dll-t.
Tomcat-et hasznalsz? Nezd at figyelmesen, milyen jar-okat tettel be,
egyik osztalyod se legyen benn ket peldanyban.
Udv:
Robi -
robisz
senior tag
Gaz. Durvan behalhatott a Windows Installer.
Frissitett a Windows-od?
Esetleg probalj meg a c:\Windows\Installer konyvtarbol torolni,
mas otletem nincs
-
robisz
senior tag
Próbáld meg a következőt:
- Uninstalláld a java-t
- Törölj ki mindent manuálisan a ''Program Files\Java'' könyvtárból,
ha maradt ott valami.
- Törölj ki minden registry bejegyzést a
''HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft'' alól.
- Reinstall java
Remélem ez segít
-
robisz
senior tag
-
robisz
senior tag
Nem örül, sajna. Amit írtál letöltöttem, de ezzel még nem megy a chat.
Kéri a hiányzó bővítmény telepítését, amit nem hagy végig, mert ezt írja:
ERROR 1722. There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected.
Ha megint próbálom akkor ez műsor megy:
You alredy hare this version of the JRE installed. Please uninstall the product trough your add\remove programs utility before reinstalling.
Szóval kösz az eddigieket, de további segítséget kérek !!Ez egy Installshield hiba, telepítés közben történhetett valami gebasz...

Nem tudsz uninstallálni az Add/Remove programs-ból?
Szerintem próbáld meg újra letölteni, hátha hibás a package... és nézd meg
kétszer is, hogy jó verziót szedsz-e.
-
robisz
senior tag
Sziasztok !
Hogy legyen köztetek egy abszolút láma is, megjöttem. Az a gondom, hogy bizonyos dolgokhoz kell a Java a gépen ( pl. chat... stb ), én boldogan telepítem felfelé, egyszer csak leáll, ír valami olyasmit , hogy a verzióm nem megfelelő, és kész.
Három napja vergődök, hogy valami alap Javát összehozzak, de semmi.
Ugyanezen a rendszeren fenn volt, csak volt formattálva a vinyó, azóta nem akarja a jót.
Ha valakinek van Java-slata, örömmel venném...
Köszi előre is !Kicsit pontositsd azt a hibauzenetet pls.

-
robisz
senior tag
rákerestem és nem találtam még kettős buffereléses példát a topicban (meg guglival se nagyon (olyat amihez magyar magyarázat is van))
van itt 1 progi:
import java.awt.*;
import java.awt.event.*;
public class Mozgas extends Frame implements WindowListener {
private int poz;
public Mozgas(){
super(''Mozgas'');
setSize(500,500);
setBackground(new Color(192,192,192));
addWindowListener(this);
}
public void windowClosing(WindowEvent e){
System.exit(0);
}
public void paint(Graphics g) {
g.setColor(new Color(255,255,0));
g.fillRect(50,50,400,400);
g.setColor(new Color(0,0,255));
g.fillRect(50+poz,50+poz,50,50);
}
public void vandorol(){
for (int c=1; c<350; c++){
try {Thread.sleep(10);} catch (InterruptedException e){}
poz++;
repaint();
}
}
public static void main(String[] args){
Mozgas mw = new Mozgas();
mw.setVisible(true);
mw.vandorol();
}
}
ha valaki elmagyarázná hogy ebben pontosan hogyan kell megcsinálni hogy kettős bufferelés legyen és ne villódzon azt megköszönném
Helló! A lényeg, hogy először egy BufferedImage objektumra kell rajzolni
(ezt a paintBuffer metódusba tettem át) és csak a kész képet rajzoljuk
át a komponensre.
import java.awt.*;
import java.awt.event.*;
public class Mozgas extends Frame {
private int poz;
private Image bufferImage;
private Graphics bufferGraphics;
public Mozgas() {
super(''Mozgas'');
setSize(500,500);
setBackground(new Color(192,192,192));
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public void paint(Graphics g){
if(bufferGraphics==null){
bufferImage = createImage (this.getSize().width, this.getSize().height);
bufferGraphics = bufferImage.getGraphics();
}
bufferGraphics.clearRect(0,0,this.getSize().width, this.getSize().height);
//calls the paintbuffer method with
//the offscreen graphics as a param
paintBuffer(bufferGraphics);
//we finaly paint the offscreen image onto the onscreen image
g.drawImage(bufferImage,0,0,this);
}
public void paintBuffer(Graphics g){
g.setColor(new Color(255,255,0));
g.fillRect(50,50,400,400);
g.setColor(new Color(0,0,255));
g.fillRect(50+poz,50+poz,50,50);
}
public void update(Graphics g) {
paint(g);
}
public void vandorol() {
for (int c = 1; c < 350; c++) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
}
poz++;
repaint();
}
}
public static void main(String[] args) {
Mozgas mw = new Mozgas();
mw.setVisible(true);
mw.vandorol();
}
}
Saját komponenst egyébként a Component vagy a Canvas osztályból szokás
származtatni, de egy ilyen kis példa esetén így is megteszi. -
robisz
senior tag
Helló!
Először érdemes lenne megismerkedned egy ''Hello World'' szintű
Swing programmal: [link]
Ha ez megvan, akkor itt egy kis útmutató:
- Egy saját ''négyszögrajzoló'' Swing komponenst kell készítened.
A legegyszerűbb ha a JPanel osztályból származtatsz, a paintComponent
metódus felüldefiniálásával tudsz rajzolni.
- Az egér kezeléséhez a MouseListener interfészt kell implementálni,
az eseménykezelőt az addMouseListener metódussal tudod hozzáadni
a komponensedhez.
Sok sikert!
-
robisz
senior tag
Hellosztok. Van olyan progi winfos-ra amit a .jar fajlokat lefutattja, megtudom nezni sz. gepen, mielott telefonra toltenem?!
Hello! A legegyszerűbb ha letöltesz valamilyen J2ME SDK-t, ezek általában
tartalmaznak egy telefonszimulátort.
A Sun-ét itt találod J2ME Wireless Toolkit néven:
[link]
Előtte a standard Java-t is fel kell telepíteni.
Nem 100%, hogy minden futni fog rajta, mert a fejlesztők gyártóspecifikus
package-eket is használhatnak. Ez esetben az adott gyártó J2ME SDK-ját
érdemes beszerezni. Pl. Nokiának, Motorolának tuti van.
[Szerkesztve] -
robisz
senior tag
-
robisz
senior tag
nos

van egy panel, aminek a háttérszinét változtatom 2féle módon...
vagy beírom a textfieldbe az rgb értékeket 0-255 közt, és ennek alapján a scrollbar is a beírt értékre ugrik, vagy fordítva...
húzigálom a scrollbart és ennek függvényében változik a textfieldbe írt érték
azután ugye a: int piros = sbSzinpiros.getValue(); a scrollbar piros értékét kiolvasom egy integerbe...
majd a zöldet: int zold = sbSzinzold.getValue();
kéket: int kek = sbSzinkek.getValue();
és az egészet beállítom a panel hátterének:
pnSzin.setBackground(new Color(piros, zold, kek));
vagy ezt bonyolultan próbálom megoldani? van egyszerűbb módja is?
mondom csak pár hete jávázok..
azt nem vágom le, hogy a eseménykezelés melyik részébe kell beírnom a fókuszálásokat...Ha mégis a scrollbar-t erőlteted, akkor valahogy így tudom elképzelni
az eseménykezelődet:
public void adjustmentValueChanged(AdjustmentEvent e)
{
tfSzinpiros.setText(Integer.toString(sbSzinpiros.getValue()));
int piros = sbSzinpiros.getValue();
tfSzinzold.setText(Integer.toString(sbSzinzold.getValue()));
int zold = sbSzinzold.getValue();
tfSzinkek.setText(Integer.toString(sbSzinkek.getValue()));
int kek = sbSzinkek.getValue();
pnSzin.setBackground(new Color(piros, zold, kek));
Object source = e.getSource();
if (source == sbSzinpiros)
tfSzinpiros.requestFocus();
else if (source == sbSzinzold)
tfSzinzold.requestFocus();
else if (source == sbSzinkek)
tfSzinkek.requestFocus();
} -
robisz
senior tag
nos

van egy panel, aminek a háttérszinét változtatom 2féle módon...
vagy beírom a textfieldbe az rgb értékeket 0-255 közt, és ennek alapján a scrollbar is a beírt értékre ugrik, vagy fordítva...
húzigálom a scrollbart és ennek függvényében változik a textfieldbe írt érték
azután ugye a: int piros = sbSzinpiros.getValue(); a scrollbar piros értékét kiolvasom egy integerbe...
majd a zöldet: int zold = sbSzinzold.getValue();
kéket: int kek = sbSzinkek.getValue();
és az egészet beállítom a panel hátterének:
pnSzin.setBackground(new Color(piros, zold, kek));
vagy ezt bonyolultan próbálom megoldani? van egyszerűbb módja is?
mondom csak pár hete jávázok..
azt nem vágom le, hogy a eseménykezelés melyik részébe kell beírnom a fókuszálásokat...Kicsit nehéz elképzelnem a dolgot...
a scrollbar nem arra való,
hogy a ''huzogatásával'' egy értéket beállíts
Erre inkább a JSlider komponenst lehetne használni... -
robisz
senior tag
üdv!
tudom h van, csak most kezdtem 1,5 hónapja a javat, és gyakorlok
a lényeg: adott 3 scrollbar, mellette 3 textfield...ha bármely scrollbaron esemény történik, akkor a hozzá tartozó tfieldbe tegye a fókuszt...
ez az eseménykezelése a scrollbarnak:
public void adjustmentValueChanged(AdjustmentEvent e)
{
tfSzinpiros.setText(Integer.toString(sbSzinpiros.getValue()));
int piros = sbSzinpiros.getValue();
tfSzinzold.setText(Integer.toString(sbSzinzold.getValue()));
int zold = sbSzinzold.getValue();
tfSzinkek.setText(Integer.toString(sbSzinkek.getValue()));
int kek = sbSzinkek.getValue();
pnSzin.setBackground(new Color(piros, zold, kek));
}Az AdjustmentEvent getSource() metódusa visszaadja, hogy melyik
scrollbar-on történt az esemény (mondjuk nem teljesen tiszta, hogy mire
használod pontosan a scrollbarokat de az most mellékes
)
Ezután tudsz egy elágazást írni, amelyben meghívhatod a megfelelő
textfield requestFocus() metódusát. -
robisz
senior tag
üdv!
újabb nyűgöm támadt
azt hogy tudom megcsinálni, hogy ha van egy scrollbar és annak az elemein klikkelek, akkor a billentyű fókusza a mellette levő textfieldbe kerüljön?
remélem érthető
a klasszikus színkeverőt csináltam meg, megy is minden, csak ennyi kellene bele, hogy ''tökéletes'' legyen
Helló!
A requestFocus() metódussal tudsz egy komponensre fókuszálni.
Pl.: textField.requestFocus();
Amúgy színkiválasztó dialog alapból van a Java-ban, nézd meg a
javax.swing.JColorChooser osztályt! -
robisz
senior tag
nem tudja valaki, hogy mi módon tudom egy textField-be kiíratni egy 3 elemű tömb értékeit?
Ez nagyon egyszerű... vagy csak nem értem a kérdést???
Pl:
String text = tomb[0] + '' '' + tomb[1] + '' '' + tomb[2];
textfield.setText(text); -
robisz
senior tag
-
robisz
senior tag
Polip!
A www.antikvarium.hu-n még megvan ez a Hans Bergsten - JavaServer Pages könyv!
______________________________________________________________________
Kérdésem:
Jsp-ben kéne olyan progit csinálnom,ami kiírja 1-100ig a primszámokat!
Segítene vki?
Kezdő vok jsp-ben másba megcsinálom,de ebbe kell...
Thx
[Szerkesztve]Ha Java-ban meg tudod csinálni akkor könnyű dolgod van...

Tedd a kódot <% és %> jelek közé és a kiíratást out.println-nel
végezd System.out.println helyett...
Szvsz érdemes lenne átfutnod ezt is: [link] -
robisz
senior tag
Egyetértek, sőt én ki merném jelenteni, hogy az a könyv egyenesen sz@r.

De úgy vettem ki, hogy magyar nyelvű anyag kell a srácnak, én meg nem tudok másikról
-
robisz
senior tag
-
robisz
senior tag
-
robisz
senior tag
Egyszerüsítenék!
csak ennek szeretném megtudni h mit is akar kiirni:
if(txtlogin.getText().trim().toUpperCase().intern() == inuser[2 * (i - 1) + 2].trim().toUpperCase().intern()
&& txtpass .getText().trim().toUpperCase().intern() == inuser[2 * (i - 1) + 3].trim().toUpperCase().intern())
köccke!Itt semmit nem akar kiírni, ugyanis ez egy feltétel egy if utasításban

Egyébként ez az applet nagyvonalakban a következőt csinálja:
Letölt egy szöveges fájlt egy URL-ről ami ha jól sejtem felhasználóneveket
és jelszavakat tartalmaz (lásd az inFile metódust). A fájlban levő
adatokat eltárolja az inuser tömbben.
Az általad idézet részben történik annak ellenörzése, hogy a felhasználó
jó usernevet és jelszót adott-e meg (benne van e az inuser tömbben).
A páros indexű elemek tartalmazzák a userneveket, a következő páratlan indexű
elem pedig a jelszó.
Ha a felhasználó érvényes adatokat adott meg (azaz ''bejelentkezett'') akkor
benyit egy url-t egy frame-be amit applet paraméterben adtak meg neki.
Kb ennyi
-
robisz
senior tag
Sziasztok!
Lehet kicsit szokatlan a kérésem,talán pofátlannak is tűnik elsőre,viszont tényleg uccsó lehetőségként probálkozok ezzel.Arról lenne szó,hogy java programot kéne leadnom,viszont nem igazán boldogulok vele :S Egy egyszerü Snake programról van szó,semmi extra - már akinek,nekem sajnos az
.Tudna esetleg nekem valaki ebben segiteni? A feladat úgy szól,hogy irjak 1 appletet,amelyben a virtuális kigyónak kell ''almákat'' gyűjtenie.Billentyűzetről legyen irányitható,a játék végeztével pedig statisztikával /pontszám/ lépjen ki. Valaki lenne olyan jó,hogy megszánna?
[Szerkesztve]Milyen segítségre gondoltál??? Valahol elakadtál vagy azt szeretnéd,
hogy valaki írja meg helyetted?
Utóbbi esetben Google.... és még válogathatsz is
-
robisz
senior tag
A magyarul is megjelent JSP könyvben is van róla pár oldal bár ezért
nem venném meg mert amúgy egy rakat sz*r
-
robisz
senior tag
-
robisz
senior tag
Lenne két kérdésem:
1. miért írja ki a javac.exe és a java.exe parancssorból való futtatáskor hogy hozzáférés megtagadva? Két napja még működött. Azóta újrainstalláltam de úgyanúgy ezt írja ki.
Ha total commanderben ráenterezek akkor lefutnak ,de így meg nem tudom paraméterezni normálisan.
2. a RandomAccessFile osztályban hogyan tudok normálisan int-et kiiratni?
mert a write() mindig valamilyen szemetet tesz be a sorvége karakter elé a writeINT meg négy byte-ot ír ki a 2 jegyű számokhoz is.1. Passz, talán próbáld megnézni, hogy a JAVA_HOME be van-e állítva rendesen.
2. A Java-ban az int 4 byte-on van ábrázolva, teljesen függetlenül attól, hogy hány
jegyű a szám... ezért az teljesen normális, hogy a writeInt() 4 byte-ot ír ki
Ha String-ként akarod kiírni akkor a writeChars() metódust használd...
Egyébként úgy vettem ki abból amit írtál, hogy te egy textfájlt szeretnél írni, nem
pedig binárisat. Ez esetben ne használd a RandomAccesFile osztályt (egyébként
sem ajánlom) hanem inkább próbálkozz ezzel:
PrintWriter out
= new PrintWriter(new BufferedWriter(new FileWriter(''foo.out'')));
A PrintWriter segítségével bármit ki tudsz írni string-ként!
[Szerkesztve] -
robisz
senior tag
-
robisz
senior tag
Sziasztok!
Egy nagyon egyszerű kérdésem lenne, de sehogy sem találom rá a választ (neten kerestem).
Tehát: Hogyan tudok egy metódusban CÍM szerint átadni (asszem erre mondják h referencia azserint). Mert ugye pl. egy int érték szerint adódik át, tehát ha a metódusban változtatom az értékét, akkor a az eredeti értéke változatlan marad; itt segítene a referencia szerinti átadás.
Előre is köszi!Helló!
A primitív típusok MINDIG érték szerint adódnak át (nincs is referenciájuk).
Az befoglaló osztályok (Integer, Long) referencia szerint adódnak át, ezeknek
viszont nem tudod változtatni az értékét
(Erre egyébként nem tudok rájönni mi értelme...)
Ha mindenképp erre van szükséged akkor csinálj egy saját osztályt aminek
egyetlen int adattagja van get és set metódusokkal...
Új hozzászólás Aktív témák
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Raktáron, PlayStation 4 Slim 500GB, gyönyörű szép állapotban, 6 hó garanciával, üzletből!
- PlayStation 4 Pro 1TB 7216B, frissen pasztázva, 6 hó garanciával, Bp-i üzletből eladó!
- Nintendo Switch OLED 64GB+256GB MicroSD + okositott, Atmosphere 3 hó garanciával
- Akciós! Kishibás! Macbook Pro 13 M1 16GB 256GB Akku: 87% 1 év garancia
- Macbook Pro 13 M1 16GB 256GB Akku: 88% 1 év garancia
- Dell USB-C, Thunderbolt 3, TB3, TB4 dokkolók (K20A) WD19TB / WD19TBS / WD22TB4
- Honor 400 Lite / 8/256GB / Kártyafüggetlen / 12Hó Garancia
- 27% - ASUS ROG Strix XG27ACS Monitor! 2560x1440 / 1ms / 180Hz / G-Sync / FreeSync
- AKCIÓ! ASUS H310M i5 8500 16GB DDR4 240GB SSD GTX 1060 6GB Zalman T3 Plus CoolerMaster 500W
- Asus RP-AC87 AC2600 Wi-Fi range extender
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest















