Ez, ami nekem van meg az 1.2-es varit dolgozza fel. Főleg awt példák szerepelnek benne, de a swing-et is magyarázza a vége felé. Itt is kezdődtek a dolgok annyira összekuszálódni, h. arra a következtetésre jutottam, jobb lesz elelétől kezdve átvenni és helyükre tenni a dolgokat(persze ez magyarul könnyebben megy).
Köszi a címet.
Általában igaz a megjegyzés, hogy egy ilyen gyorsan változó dolog esetén érdemes figyelni a dátumokra és verziókra. Jóllehet a Java most 1.3-nál tart, de az 1.1-es verzió igen jól használható már, és a böngészők is ezt támogatják (úgy, ahogy).
1. megjegyzés
Ám attól, hogy létezik az újabb swing *is*, még használhatod a jó öreg awt-t!
Csak annyit tennek hozza, hogy regi konyvet nem erdemes venni, mert a Java gyorsan valtozik: mire megerted pl az awt-t, mar regen a swing a divat es igy tovabb...
A Fókuszonline-on találtam néhány Java-val foglalkozó könyvet ami érdekel. Erre a könyvre azért vagyok kíváncsi, mert megvan angolul, de én nem vagyok annyira jártas az angolban h. mindezt feldolgozzam.
Különben h. őszinte legyek nem vártam semmilyen eredményt, így ezzel is elégedett vagyok.
Egy informaciora lenne szuksegem, ti. nem lakom Magyarorszagon, belekezdtem a Java vilagba es egy magyar forditasra lenne szuksegem.
Sams Teach Yourself Java in 21 Days, Laura Lemay & Rogers Cadengead. Letezik-e ez a konyv magyar kiadasban, konnyen hozza lehet-e jutni ( ertem ez alatt azt, hogy ha en bevagodok pl. Szegeden egy konyvesboltba, megtalalom-e ) ?
Ajanlast is szivesen fogadok, ami a Javaval foglalkozo "nemmagasroptu" konyveket illeti.
Bevezetésként: annyit értek a javahoz, hogy tegnap letöltöttem a JDK 1.3-at.
Namármost. Kivágtam egy kódot egy weboldalról (Teljes kis program, szóval nem itt van elbaltázva a dolog), de amikor összeeresztem a javac-cal, akkor pontosan 14 db hibát produkál, mégpedig legtöbbjük a "cannot resolve symbol" eredményt adja. Gyanítom, hogy egyszerűen valami telepítési lamerségről van szó, de nem tudom, hogy mit csináljak.
Mit csináljak? Segítség !! Tombol bennem az alkotókedv...
Hát igen, két könyvem van, egy 260 oldalon javascript-ezik, de a file kezelés túlmutat a könyv keretein, a másik meg egy java könyv, de csak megemliti a javascript-et. A java-s peldak pedig nem rakhatok at egy az egyben. Arra azért kíváncsi vagyok miért nem megy a:
f = java.io.FileInputStream(file)
s = java.io.ObjectInputStream(f)
Szerencsére a:
f = java.io.FileInputStream(file)
s = java.io.DataInputStream(f)
megadja a file méretét, de nekem az kellene, hogy beolvassa magát a file-t.
tabulatorral elvalasztott szovegfile, amikben az elemekre szeretnék valahogy így hivatkozni:
tartalom[x][y]
Szeretnék még külsö programot futtatni. Perl-ben ez egyszerü:
@ktav = (`./ktav $fileir[2] $adat[3]`);
meg tudom adni a progi paramétereitt, és fogadom amiket visszaad.
Tkp egyszerü Windows-os progit kéne írnom, ingyenes fejlesztökörnyezettel (GNU awk, grep, gcc stb) és a Netscape-et szeretném megjelenítönek használni, a javascript-et meg ragasztónak, és nem akarok olyan problémákkal foglalkozni, mint animált gif-ek megjelenítése.
Láttam egy könyvet a szervletekrol, de sajna tobb mint$40, ugyhogy azzal még várok, addig is azt találtam ki, hogy ftp-vel fogok operálni. Majd még ki kell találnom, hogy hogy, de annak muködnie kell appletböl is.
Más. Hogyan lehet vizsgálni, hogy az adott gép, amin a java fut, hálozaton van-e vagy sem? És ha esetleg nincs, akkor hogyan lehet a windows dial-up programjának szólni, hogy akkor most teremtsen kapcsolatot?
Tudnál néhány szót szólni a signed applet-rol és a
servlet-rol. Még sosem hallottam.
Miért történik a fájl olvasás a web szerverrol? Az URL nél én adom meg a protokolt. És az akármi is lehet.
vagy akkor, ha lokalisan tarolod az appletet... Az applet a saját gépemen volt tárolva. Ekkor kaptam az: UnknownServiceException hibaüzenetet.
Igen a dos ismeri is, a probléma az az volt, hogy a jar program nem ismeri. Tényleg hülyeséget mondtam, mint ahogy feltételeztem :)
A listás kérdésre még nincs ötlet? Pedig meggyözödésem, hogy van megoldás. Lehet, hogy csak a swing tudja?
E heti kérdéseim a következok:
Java applet... fajl irás-olvasás.
Fájl olvasás a szerver géprol kiválóan muködik! Meglepetést csak az okozott, amikor cimnek nem fájlnevet adtam meg, hanem könyvtárnevet. Ekkor ugyanis HTML formában olvasta be a konyvtár tartalmát ?????? Van-e erre valami magyarázat?
Hogyan tudom meg a konyvtár tartalmát normális alakban?
Az igazi probléma a fájl írásnál adódott. Eloször is nem találtam instrukciót arra, hogy csak létezo fájlba lehet írni, vagy létre hoz magának egy megfelelo fájlt, ha még nincs.
A masodik, hogy már a kimeneti sztrim létrehozásakor kiakadt az interpreter a következo kivétellel: UnknownServiceException
Ez akkor történt, ha a saját gépemen indítottam el az appletet. Ha feltettem a hálóra, akkor semmilyen hibaüzenetet nem kaptam, viszont nem hozta létre a fájlt, és a létezo végére sem füzte a karaktereket. Kimásolom... (a fájlból való olvasás teljesen hasonló szerkezetü volt. )
URL url=null;
URLConnection urlKapcsolat;
OutputStream KimenetiStream;
cim = SBill.SajatRajz.appletCim.toString()+"proba.txt";
try {
url = new URL(cim);
}
catch (MalformedURLException l ){
System.out.println("Nem sikerult a fajlmegadas");
}
try {
urlKapcsolat = url.openConnection();
KimenetiStream = urlKapcsolat.getOutputStream();
//csak egy W betüt irok a fájlba
KimenetiStream.write('W');
KimenetiStream.close();
}
catch (IOException k) {
System.out.println("Valami hibadzik");
}
igazad volt. és ha nem szolsz, boldog tudatlanságban leledzem tovább. Csakhogy ez a tudás nekem a teljes vasárnapomba telett. Okulásként elmondom.
Mindig figyelmesen olvassuk el a helpet! :)
A jar program ugyanis valahányadik paraméternek a tömörítendo fájlok elérési útvonalát, valahányadik+1 paraméternek pedig a tömörítendo fájlokat kéri. És nem egyben az egészet. Ez legalább 3 órát ért.
Ha csomaggal dolgozol, akkor magát a csomagot rejto könyvtárt kell tömörítened. Ez is megért vagy két órát.
DOS-ból adtam ki a parancsot. Csakhogy a dos (lehet, hogy most nagy hülyeséget mondtam) nem hajlandó felismerni az olyan könyvtárneveket amelyekben szóköz szerepel. Helyette a ~-t tartalmazó könyvtárt kell használni. Vagy egyszerüen más könyvtárstrukturát választasz.
Azt hiszem ennyi.
A nap végére azonban sikerült a feladat.
Sasla! Igen ezt a tipusu listát én is ismerem, csak ezzel az a gondom, hogy egy oszlopos. nekem olyan lista kéne, aminek fejléce van és oszlopokat deffiniálhatok neki. Olyasmi például mint az NT Explorer.
Egy teljesen nem ide vágó kérdés. Ide is írom gyorsan hogy offffff
Megtudja nekem valaki mondani, hogy ha egy valahanyadik amerikai állam valahanyadik bírója hoz egy döntést, az hogyan lehet érvényes rám, magyar állampolgárra, magyarországon? Vagy az otthon felállított szerverem, ha rákötöm a telefonra, akkor már amerikai területnek számít? onnnnnn
Na, megcsinaltam a JAR-os trukkot, es felraktam az appletet a halora. Tanulsagos volt dolog volt.
Ugy sikerult csak szora birnom, hogy ha a fo-osztalynak, amelyiket CODE taggal kell meghivni, csinalnom kellett egy konyvtarat, a jar fajlt, meg a html fajt pedig kivul maradt.
Csak igy volt hajlando elindulni. Azt hittem az elejen, hogy a teljes osztalystrukturat kell jar-olni es a html valamint a jar fajlon kivul nincs szukseg egyebre. De hat nem igy lett.]
A tobbi dologra meg nem volt idom kiprobalni, de dolgozom rajta.
Van azert egy ujabb kerdes. Hogyan lehet egy keyListener-nel megmondani, hogy a billntyu benyomasakor melyik elem volt eppen fokuszban? En ugy csinaltam, hogy a getComponenet().toString() metodus visszaadott ertekebol, tokenizalassal kivalasztottam az = jel utani erteket. De azt sejtem, hogy ez afele barkacs megoldas, biztosan akad valami elegansabb is.
Konkretan, egy gombot akarok lenyomni az enter segitsegevel es nem az egerrel. Erre hasznaltam a keyListenert
Hmmm. :)))))))))))
Nem eloszor es valszeg nem utoljara javitasz ki es persze igazad van. :))))) Az elet mar csak ilyen.
Tenyleg mivel a swing-et eloszor kulon adtak, csak kesobb lett resze a JDK 1.2 -nek. De a tobbi igaz!!!! :)
A windowsban a desktopra rákattintva előjön egy menü, amiben van az "új" (New) menüpont. Ide szeretnék csinálni egy "Java program" menüpontot. De nem tudom, hogyan kell. A registry-vel egyenlőre még nem kisérleteztem.
Fokuszolas:
public void transferFocus()
Transfers the focus to the next component.
public void requestFocus()
Requests that this component get the input focus. The component must be visible on the screen for this request to be granted
Esetleg meg a FocusListener, FocusAdapter, FocusEvent hasznos lehet.
Proba szerencse
Swing:
Hasonlo mint az AWT, mar ugy ertem hogy ezek is grafikus komponensek. Tobb komponenset tartalmaz mint az AWT, es kifinomultabb is, viszont Java 1.2 kell hozza, vagyis weboldalakon a mar emlitett kompatibilitasi problema miatt nem szerencses hasznalni.
A javax.swing csomagokban vannak, tehat ezek kozul a szuksegeseket importalni kell (a java.awt.*-vel egyutt).
Kössz a segítséget!
Valóban lehet appletbol Dialógot nyitni, megpróbáltam, mert kellettt. RestGomb. Néha szükség van modális ablakra, pld ha egy adatot akarok bekérni, de nem engedhetem meg, hogy az illeto a válasz elott újra rákattinson az adatbeviteli ablak nyitó gombra, mert ha végul úgy dönt, hogy mégis válaszol a kérdésre, esetleg az összes kinyitott ablakra :) akkor hogy döntöm el, melyik az igazi válasz? Az ablak tulajdonága csak az, hogy nem léphetek vissza a szülo ablakra, amíg nem válaszoltam. Természetesen eldobhatom az ablakot, vagy átléphetek egy másik alkalmazás ablakába, úgyhogy nem "csak ezzel az ablakkal lehet foglalkoznod".
Meg lehet oldani, másként is a dolgot, de ez egy praktikus módszer.
Namármost, én csináltam egy frame osztály példányt, csak azért, hogy legyen, és ezt adtam át a Dialog konstruktorának. Primán muködött a JBuilder alatt alkalmazásként is és appletként is. Csakhogy megnéztem egy böngészovel is, és láss csodát, itt vissza tudtam lépni az appletre
a Dialog ablakból. Lehet, hogy ez is a verzio inkompatibilitás miatt van?
FixY
A fordító helyett természetesen interpretert akartam irni. Elnézést. A jar-os dologot majd kiprobálom. Ok. Persze, hogy ugy mint egy képet, csakhogy nem tudom hogy kell képet... ;)
A lista komponenses dolgot, még nem tudja senki?
És a fokus (de lehet, hogy nem ez a helyes kifejezés) változtatásos dolgot sem?
Tudna valaki pár szót szólni, arról, hogy mi az a swing? Láttam egy csomo csomagot belolük. Csak azért mert csak angol dokumettációim vannak, és hogy el tudjak indulni.
"Kivancsi vagyok a velemenyedre? :)
Hat azt neked kell tudnod... :-))) "
:))))))))))))))))))))
Hat igen. Azok a franya irasjelek.
Mindenesetre kiprobaltam es ment, de nem foglalkoztam az esemenykezelessel meg ilyesmikkel.
De megy.
Hmm valoban :) kisse elhamarkodtam a dolgot. En ugy ertettem, hogy nem lehet olyan Dialog-ot letrehozni, ahol az owner az Applet. De hat nem is kell hogy az legyen. Letre lehet peldaul hozni egy Frame tipusu peldany valtozot az appletben es azt atadni a Dialog konstruktoranak.
Kivancsi vagyok a velemenyedre? :)
Szerintem appletbol nem lehet Dialog-ot nyitni, pont azert mert a konstruktornal meg kell adni az owner. Szoval nem. Meg lehet nezni a JApplet-et, lehet hogy azzal mar lehet, nem tudom biztosan.
Ha az semmi jo, akkor egyszeruen mas kell. Szerintem.
getHeight problema:
doksi:
public int getHeight()
Return the current height of this component. This method is preferable to writing component.getBounds().height, or component.getSize().height because it doesn't cause any heap allocations.
Returns:
the current height of this component.
Since:
1.2 <<--- ez a lenyeg
Ez a fuggveny csak a Java 1.2 ota van, amit pl. a JBuilder hasznal, de a bongeszok Java 1.1-t hasznalnak igy aztan nem is ismerik ezt a fuggvenyt.
Ezt meg is mondja:
java.lang.NoSuchMethodError: java/awt/Component: method getHeight()I not found
Van egy plugin valahol a Sun weboldalan, amit fel lehet rakni, de ez minden bongeszonek kell, ha meg akar nezni egy 1.2-es appletet tartalmazo oldalt.
vagy mas megoldast kell keresni pl: getBounds() vagy getSize()
Most olvasgatom a Java utikalauz könyvet. Abban azt olvastam, hogy ha egy osztály (class) public-nak van definiálva, akkor azoknak mindegyiknek egy külön fájlban kell lennie, és a fájl nevének és a class nevének meg kell egyeznie. Ezért voltam kiváncsi arra, hogy a programban egy vagy több class van-e definiálva.
Nézegettem a Dialog definiciókat is. Egy Dialog szülője egy másik dialóg vagy egy Frame lehet.
A könyv szerint a modalitás azt jelenti, hogy a felhasználónak le kell kezelnie az ablakot. Amíg ezt nem teszi, semmi mást nem csinálhat. Ez viszont engem mint felhasználót bosszantana. Képzeld el, hogy felkeresel egy WEB-helyet, ahol megjelenik egy ilyen applet és ettől kezdve csak ezzel foglalkozhatsz, amíg a készítő meg nem könyörűl rajtad. Lehet, hogy számdékos, hogy ilyen modális dialógusokat ne lehessen betenni applettekbe.
Üdv.
ResetGomb
PS.: A topik bedig ne zavarjon. A témák jó része magánbeszélgetés. Ez olyan mind a kocsmaasztal. Ha valakinek nem tetszik, hogy ott miről folyik a duma, akkor feláll illetve oda sem megy.