- gban: Ingyen kellene, de tegnapra
- eBay-es kütyük kis pénzért
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- bitpork: MOD Júni 28- Augusztus 2- szombat jelen állás szerint.
- Yutani: Yutani Retró Hangkártyái: OAK Mozart Wavetable
- bambano: Bambanő háza tája
- btz: Internet fejlesztés országosan!
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
Új hozzászólás Aktív témák
-
robisz
senior tag
válasz
lakisoft #1552 üzenetére
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
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
válasz
Inv1sus #1467 üzenetére
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
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
Alap Javaban nincs de itt van rá egy példa:
[Binary Heap - Implementation in Java] -
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 :-)
-
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. -
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
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
válasz
cidalain #1010 üzenetére
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
Őőő... 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
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
válasz
loszerafin #906 üzenetére
A 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
válasz
loszerafin #902 üzenetére
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.
Í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
válasz
loszerafin #875 üzenetére
Szia!
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
válasz
loszerafin #865 üzenetére
Ha 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
válasz
loszerafin #858 üzenetére
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
válasz
motoroscsaj #841 üzenetére
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
válasz
loszerafin #838 üzenetére
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
válasz
loszerafin #833 üzenetére
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
válasz
loszerafin #827 üzenetére
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
válasz
loszerafin #823 üzenetére
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
Í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
-
robisz
senior tag
válasz
loszerafin #778 üzenetére
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
válasz
loszerafin #776 üzenetére
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
válasz
loszerafin #774 üzenetére
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
válasz
loszerafin #772 üzenetére
Szia!
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
válasz
loszerafin #769 üzenetére
Szia!
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
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
válasz
VadTulok #730 üzenetére
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
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
Innen szedd a ''Java Runtime Environment (JRE) 5.0 Update 9''-et, ez a legújjabb:
[link] -
robisz
senior tag
válasz
concret_hp #702 üzenetére
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
válasz
Felhasznalo9 #694 üzenetére
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
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
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
válasz
Hujikolp #636 üzenetére
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
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
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
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- HP Envy x360 14-fc0789nz - ÚJ - 14" 2-in-1 notebook - Core U7, 32GB, 2.8k OLED
- Asztali PC , i5 10500 , RTX 3070 , 32GB RAM , 512GB NVME , 1TB HDD
- Lenovo Gaming 3 15ARH7 Laptop , R5 7535HS , RTX 3050 6GB
- Eladó Dell Latitude 3410 i3 10. generáció, 8GB RAM, 256GB SSD
- DJI Air 2s drón szett hibátlan állapotban
- PlayStation Plus Premium 24 hónapos előfizetés , egyenesen a Sony-tól!
- AKCIÓ! 16GB (2x8) G.Skill Trident Z RGB 4266MHz DDR4 memória garanciával hibátlan működéssel
- iKing.Hu - Apple iPhone 13 Pro Max - Graphite - Használt, újszerű
- LG 34WQ75X-B - 34" Ívelt IPS Panel - 3440x1440 2K QHD - 60Hz 5ms - FreeSync - USB Type-C 90W
- Epson Expression 12000 XL Nagyformátumú A3 szkenner
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest