Milyen GUI toolkitet érdemes tanulni? (Java)

Fórumok

Üdv,

egyre többet használom a Java nyelvet, és látom, elég sok java-s van itt is. Mit tudtok ajánlani, a létező GUI toolkitek közül melyiket érdemes használni? Alapvetően desktop programok írására.

- Swing-gel már foglalkoztam, tetszik is, de tudtommal lassan leáldozófélben van.
- SWT-t nézegettem még
- QtJambi se lenne rossz, de Nokia támogatás nincs már, azt hiszem.

Valami olyasmit használnék, amiben van "jövő".

Másik kérdésem: manapság hogyan érdemes GUI-t létrehozni? WindowBuilder-t néztem, de már egy kicsit bonyolultabb felhasználói felületnél (Swing) úgy eldőlt, hogy csak úgy porzott...
Alapvetően Eclipse-t használok. A NetBeans-t valahogy nem tudtam megszokni, talán azért is, mert nagyon elüt a rendszer kinézetétől. Mint ahogy a Swing-gel is ez a búbánatom.

Hozzászólások

Valami olyasmit használnék, amiben van "jövő".

Javaban max szerver oldalon van "jövő".

----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"

Lehet, hogy már nem is ír :) HTML5, és valami gecko-enginen futtatja.

Én C++-ban írok, Qt-vel, de csak azért, mert van a kinézetére igényességem (mármint hogy minden platformon natívan nézzen ki). De én is kíváncsi vagyok, hogy mit fognak itt ajánlani, mert mint nyelvet, a Javát szerettem nagyon meg.

Kár azért a QtJambiért. Ha szinkronban haladna a C++-os Qt-val, a legjobb multiplatform desktop programming environment lehetne; java+Qt, nativ erzetu widgetekkel.

Hali,

A swingnek nem kell feltetlen a javas LookAndFeel-t hasznalni.

Ezzel windowsban windowsosan, linuxban linuxosan fog kinezni a programod:

try {
// Set System L&F
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
}
catch (UnsupportedLookAndFeelException e) {
// handle exception
}
catch (ClassNotFoundException e) {
// handle exception
}
catch (InstantiationException e) {
// handle exception
}
catch (IllegalAccessException e) {
// handle exception
}

Sajnos nem natív.

A font hinting beállításokat nem veszi át, a jelenleg linuxdesktop legnagyobb részesedést elérő Ubuntuban is alkalmazott slight hintinggel ellátott appoktól igencsak elütnek a swinges appok. Valamint igen nagy eséllyel ha valami egzotikusabb GTK-témát használ az ember, akkor azt nem is mindig sikerül visszaadnia a swingnek. Windows és OSX rendszereken talán nem szembetűnő a swing féle nem-natív csalás, de linuxon komolytalan.

Nem nativ es soha nem is lesz az. Tessek megerteni, hogy a Swing nem nativ kontrollokat hasznal, sajat maga rajzolja az OS-tol kapott feluletre a tartalmat. Ezert lightweight keretrendszer, teljesen o kezeli a rajzolast (font renderinget is) , nem az OS. Mig AWT es SWT eseteben az OS eroforrasai vannak hasznalatban. A 6u10-ben sikerult megoldani eloszor, hogy AWT es Swing kontrollokat normalisan lehessen hasznalni egy appon belul, ne takarjak el egymast. az AWT/SWT keveredes az esemenykezelo szalak miatt nem trivialis, de megoldott, viszont elegge alacsony sebessegu.

Nem. Ez csak emulál, nem lesz natív. A fontok nem lesznek jók. A font hinting sem a rendszerhintiget használha majd, sőt, Java SE 6u10-nél ki is emelték, hogy a Javas hinter már egészen azonos eredményt állít elő a ClearTypehoz képest, már csak apró az eltérés. Csakhogy ez az apró eltérés is szembetűnő. A Swing nem a natív widgeteket használja (szemben pl. az AWT-vel és SWT-vel).

Ugy tudom desktop gui-nak most a javafx 2.0 van bepozicionalva. Bar, hogy mennyire hasznalhato, passz. Mar nagyon reg nem irtam gui-s desktop appot. Az teny, hogy regen is a Netbeans-ben volt hasznalhato visual editor swinghez.

Swing vagy JavaFX. A 2.0-s javafx már egészen kultúrált. Mi alkalmazást (is)
fejlesztünk java-ban, desktop-ra, és teljesen meg vagyunk vele elégedve.
Most kerül majd átírásra az eddigi swing-es kódunk, hogy a javafx-et is támogassuk.

Szia,

Szerintem NetBeans Platform, erről írtam itt:

http://jtechlog.blogspot.com/2011/07/vastag-kliens-java-ban-netbeans.ht…

Mi végigvittünk vele egy projektet, alapvető probléma nem volt. Nagyon komplex, hosszabb a betanulási fázis.

A JavaFX-el én várnék, egyelőre az Oracle sem nagyon tudja, mit csináljon vele. Most dobták ki az 1.0 felét, ki tudja, nem-e ez a jövő vár a 2.0-ra is.

Viczi
http://jtechlog.blogspot.com

hát max bepróbálhatod a javafx-et, nem kizárt, hogy még a végén lesz belőle egy használható valami (és nem csak windows-ra). bár én alapvetően az egész javában, mint platformban nem látok jövőt :)

ha nem csak java játszik és nem gyűlölöd az ms-t, akkor ott a winforms, az monoval is megy szépen. amúgy meg lehet qt-zni, pythonozni, stb.

[ NeoCalc - Earnings Calculator for NeoBux ]

WinForms-t nem dobták még el?
A qt-t nagyon szerettem, a C++ sok hülyesége az, amiért nem rajongok (tipikusan a sok körítés kód, amire szükséged van, hogy rendben legyenek a dolgaid, pl. copy constructor). Python nem annyira jött be, PyQt4-et használgattam, ott emlékeim szerint egy widget-re nem lehetett közvetlenül rajzolni (tehát bitblt jellegű műveletre gondolok). Igaz, rég volt.

pff, hát hajrá, én személy szerint nem csípem se a flash-t (as-t), se a html/css/js erőlködést alkalmazás-fejlesztésben. van ezekhez egyáltalán ingyenes környezet, vagy mindenképp meg kell hozzá venni a flash-t/flash build-ert/x-edik reinkarnációt?

[ NeoCalc - Earnings Calculator for NeoBux ]

Flex SDK van OpenSource (parancssoros), Flash Builder már fizetős (Eclipse based + Profiler meg ilyenek, drága) :) Mondjuk talán FlashDeveloppal is lehet integrálni az SDK-t, de az meg Win-only sajnos :(

Ami tényleg gond a platformmal, az a runtime zártsága, de amúgy szerintem elég jól használható. Mindenesetre egy pillantást megérhet, hátha.

Szerk: még ami jó, hogy ha jól tudom a Zend és az Adobe rendesen összenyalt, úgyhogy elég jó támogatása van a Flash cuccoknak Zendben. Meg ugye ott a Flash Builder for PHP is, bár ezekről sajnos még nincs tapasztalatom.

"az egész javában, mint platformban nem látok jövőt" hát pedig hidd el, hogy van, nem mondom, hogy jót tesz neki a jelenlegi fennforgás, de hosszútávon senki, még az ora sem, temethet el egy olyan "multiplatform", "enteprise" megoldást, mint a Java. Mi köszönnyük jól elvagyunk a Java-val, és még csak tervezni sem tervezzük, hogy céges szinten váltunk valami másra.

_____________________
OWASP AntiSamy Javaban

A QTJambi mennyire él még? Mikor elkezdték csinálni nagyon jókat hallottam róla, csak ugye a nokia kihátrált a qt mögül, azóta nagy a csönd.

Fentebb írták, hogy Android és igen. A Windows desktop részesedése még mindig 90% körül van. De ha nem desktopról beszélünk, hanem net/média felhasználókról, részesedése vészesen esik, valahol 50% alá mostanában, ha nem csal az emlékezetem.

Napi 300e+ androidot (vagy most már még több) aktiválnak naponta. A netező, facebookozó, zenét, videót néző, chatelő, alkalmi játékosok tömegével állnak át az androidra vagy az apple termékekre, mert tökéletesen kiszolgálja az igényüket.

Ráadásul a vállalati szférába is szépen szivárog be, mivel otthon ezt használják a döntéshozók, a céges megoldásokba is szívesen látják, pl az üzletkötők ilyenekkel futkorásszanak (nameg olcsó is viszonylag). Nemrég láttam a bétáját egy nagy-nagy multinak, és egy sima Samsung tabra állítják át a cég nagyrészét.

Technológiára imádom a QTét, de szerintem én is hamarosan Androidot fogok bütykölni, a cégnél is már szóltak, hogy nemsokára jönnek a projektek... én ebbe invesztálnék.

Hmm valami előadást néztem, de lehet hogy rosszul emlékszem a számokra, illetve lehet hogy a technológiákra különösen fogékony népcsoportot nézték? Hát már meg nem találom az internet bugyraiban. A tévedés jogát pedig fenntartom :D Attól még az ilyen hordozható baszok felé megy az ipar, elég nagy sebességgel, akár tetszik akár nem.

Na nem volt kedvem elolvasni a fenti flame-t de azért mondom a magamét:

* swing végülis oké, ha mellé megtanulod a NetBeans platformot, akkor főleg
* SWT-t csak akkor, ha megtanulod mellé az Eclipse platformot
* android - hát biztos jó, engem a magam részéről nem érdekelnek az okostelefonos cuccok

Amit semmiképp se: AWT

"* swing végülis oké, ha mellé megtanulod a NetBeans platformot, akkor főleg"

+1, NetBeans platform szerintem nagyon meggyőző és sokkal bugmentesebbnek is tűnik, mint az eclipse rcp. Komolyabb swinges appnak csak NetBeans platform használatával állnék neki, ráadásul a NB 7-ben már nem kell xml config fájlokkal szenvedni, annotációkkal egy csomó funkció kényelmesen elérhető.

Egyszerűbb java desktop alkalmazásokhoz teljesen jó lehet a BSAF, de nehéz azért az NB platformmal összehasonlítani, mert a NB sokkal-sokkal több lehetőséget kínál. A BSAF előnye lehet, hogy kevesebb rammal elvan, gyorsabban indul az app, cserébe a NB-hez képest fapados (pl. nem tud Installert készíteni, nincsenek hozzá wizardok, stb.). Azt is aggályosnak tartom, hogy kb. 1 éve nem volt semmi komolyabb fejlesztés a BSAF-ben. Persze NB-nél meg gond lehet, hogy jövőhéten gondol egyet az Oracle és "megszünteti" a projektet.

Üdv,
Ákos