|
[Grafika]
[WebTip]
[Fotografování]
[Galerie]
[MujMac]
[Printing]
|
|||||||||
![]() |
||||||||||
|
|
|||||||||
Diskuzní forum: JavaTéma diskuze: Programovací jazyk Java. Pro javascript existuje vlastní diskuzní forum.Tip: nemáte rádi v textu smajlíky? Ruší vaše zdrojové kody? Vypněte si je! (Moje nastavení / Nastavení soukromí) awt vs Swing vs Java2D
Vloženo uživatelem: Behnil - uživatel již zaslal 107 příspěvků (IP uloženo)
Datum: 02. 02. 2010 14:01
Zdravim,
mohl by mi prosim nekdo objasnit, jake jsou mezi temito tremi frameworky vztahy? Precetl jsem toho uz spoustu, ale nejak v tom mam porad gulas. Diky Re: awt vs Swing vs Java2D
Vloženo uživatelem: Zerog - uživatel již zaslal 301 příspěvků (IP uloženo)
Datum: 02. 02. 2010 14:41
Pokud chces, aby aplikace mela GUI (nebyla jen konzolova), mela okna, tlacitka atd. Muzes pouzit AWT nebo Swing. Rozdil je ten ze AWT je predchudce Swingu. Dnes se moc nepouziva nebot je pomalejsi nez Swing. (ma i jine rozdily)
http://cs.wikipedia.org/wiki/Swing_(Java) Java 2d, tim je nejspis myslena obecna prace s grafickymy 2D objekty. Jako jsou obrazky (fotky), krivky, ctverce...atd. -------------------- javatar and .NOT http://www.youtube.com/watch?v=9QFK1cLhytY Re: awt vs Swing vs Java2D
Vloženo uživatelem: Behnil - uživatel již zaslal 107 příspěvků (IP uloženo)
Datum: 02. 02. 2010 14:49
Diky za odpoved, ale uplne jasne to porad nemam. Uz jsem delal nejake aplikace ve Swingu, ale me spis jde o to, jake jsou mezi nimi vztahy.
Napriklad : awt je zakladni framework pro vykreslovani grafickych komponent, ktery vyuziva pro zobrazeni jejich obsahu Java2D. Swing je potom postaven nad awt a tudiz vyuziva jak awt, tak Java2D. Je to tak nebo se pletu? Re: awt vs Swing vs Java2D
Vloženo uživatelem: Zerog - uživatel již zaslal 301 příspěvků (IP uloženo)
Datum: 02. 02. 2010 14:59
Myslim, ze by to tak slo rict. I kdyz ja bych java2D postavim mimo. tzn: AWT -> Swing a bokem nejaky udelavatko ktere to doopravdy vykresli (api java2d). Ono to jeste pracuje s L&F atd. -------------------- javatar and .NOT http://www.youtube.com/watch?v=9QFK1cLhytY Re: awt vs Swing vs Java2D
Vloženo uživatelem: judovana - uživatel již zaslal 1227 příspěvků (IP uloženo)
Datum: 02. 02. 2010 15:07
java2d neni bokem. Ty jsi snad nekdy kreslil do konzole? Re: awt vs Swing vs Java2D
Vloženo uživatelem: Behnil - uživatel již zaslal 107 příspěvků (IP uloženo)
Datum: 02. 02. 2010 15:23
Tak jak to tedy vlastne je? ![]() Re: awt vs Swing vs Java2D
Vloženo uživatelem: Zerog - uživatel již zaslal 301 příspěvků (IP uloženo)
Datum: 02. 02. 2010 15:24
Ja nemyslel bokem jako uplne bokem. Spis vedle. Protoze podle me existuji i vazby Swing -> java2d ne jen java2d <- awt <- Swing.
Ale kdyz nad tim premyslim tak se mozna pletu. A nebo ne? Musel bych prolest Api abych to vedel jiste. Omlouvam se za mateni ![]() -------------------- javatar and .NOT http://www.youtube.com/watch?v=9QFK1cLhytY Re: awt vs Swing vs Java2D
Vloženo uživatelem: Behnil - uživatel již zaslal 107 příspěvků (IP uloženo)
Datum: 02. 02. 2010 15:33
No v pohode, taky se v tom poradne nevyznam...kdyby se vyjadril nekdo zkuseny, bylo by to fajn ![]() Re: awt vs Swing vs Java2D
Vloženo uživatelem: Neregistrovaný uživatel: Stan Svec (IP uloženo)
Datum: 02. 02. 2010 16:03
Nepleteš se. AWT knihovnu lze chápat jako napojení Javy na nativní gui hostileského OS. Takže každá AWT komponenta má svůj nativní protějšek, se kterým komunikuje pomocí peer objektu. AWT se stará o přeposílání události z OS do Java aplikace a další nutné věci. Takže aplikace využívající čistě AWT nemají na různých OS jednotný vzhled, protože jenom využívají grafických komponent OS, na kterém běží. Proto (asi nejen) vznikl Swing, který tohle řeší tak, že z nativních komponent využívá jenom okno (Window, Dialog, Frame), na které kreslí asi právě pomocí třídy z Java2D (java.awt.Graphics - jak hodně tahle třída patří do Java2D nevím). Swing komponenta nemá žádný nativní protějšek (peer atribut je typu LightweightPeer). Je to čistě záležitost Javy - kreslení a překreslování (RepaintManager), přeposílání událostí... Stačí si to představit tak, že Swing aplikace si jenom pomocí AWT vypůjčí od OS okno a pak už jenom pomocí Graphics objektu okna na něj kreslí své komponenty. Tzn. je celkem snadné změnit vzled a chování těchto komponent přes PLAF (UIManagager). AWT komponenty bylo potřeba trochu upravit, aby je Swing mohl využívat. Třeba když někdo klikne myší do okna, je třeba zjistit, na kterou Swing komponentu doopravdy kliknul (Container.getMouseEventTarget()) a mouse událost ji přeposlat. Re: awt vs Swing vs Java2D
Vloženo uživatelem: Zerog - uživatel již zaslal 301 příspěvků (IP uloženo)
Datum: 02. 02. 2010 16:06
Tak nic. Jsi me predbehl Pekne rozepsani. -------------------- javatar and .NOT http://www.youtube.com/watch?v=9QFK1cLhytY RE: awt vs Swing vs Java2D
Vloženo uživatelem: rudyment - uživatel již zaslal 203 příspěvků (IP uloženo)
Datum: 02. 02. 2010 16:35
> ... RozdĂl je ten ze AWT je > predchudce Swingu. Dnes se moc nepouziva nebot je pomalejsi nez Swing. > (ma i jine rozdily) Ani náhodou. AWT je naopak rychlejšà neĹž swing, protoĹže si nechává vše kreslit od operaÄŤnĂho systĂŠmu jeho maximálnĂ rychlostĂ, kdeĹžto swing si vÄ›tšinu vÄ›cĂ kreslĂ sám. AWT vzniklo tÄ›snÄ› pĹ™ed uvedenĂm Javy. Java pĹŻvodnÄ› Şádnou okennĂ knihovnu nemÄ›la a mÄ›sĂc pĹ™ed uvedenĂm si marketingovĂŠ oddÄ›lenĂ vymyslelo, Ĺže by se mohla hodit. Tak programátoĹ™i sedli a urychlenÄ› nÄ›jakou knihovnu naprogramovali. BohuĹžel, tato knihovna mÄ›la nÄ›kterĂŠ "rychlokvašenĂŠ rysy", takĹže nÄ›kterĂŠ jejĂ vÄ›ci hned ve verzi 1.1. pĹ™edÄ›lali. Koncepce platná pro verzi 1.1 je (byĹĄ s jistĂ˝mi Ăşpravami) platná dodnes. Knihovna AWT je rychlá a relativnÄ› malá. VĹždy respektuje aktuálnĂ platformu, protoĹže klĂÄŤovĂŠ komponenty zĂskává od nĂ. To má jednu nevĂ˝hodu: mohou v nĂ bĂ˝t pouze takovĂŠ komponenty, kterĂŠ najdete ve všech platformách (Windows, Linux, MacOs, ...). V komunitÄ› proto záhy po uvedenĂ Javy zaÄŤala vznikat nová knihovna pracovnÄ› nazvaná swing. ProtoĹže nemohla bĂ˝t umĂstÄ›na v balĂÄŤku java (viz definice jazyka), vymysleli pro ni jejĂ autoĹ™i balĂÄŤek javax – knihovna je tedy v balĂÄŤku javax.swing. Tato knihovna vyuĹžĂvala nÄ›kterĂŠ části knihovny awt (napĹ™. mechanizmus událostĂ, správce rozvrĹženĂ) a svĂŠ komponenty definovala jako potomky komponenty knihovny awt - pĹ™esnÄ›ji rodiÄŤ všech swingovĂ˝ch komponent, tĹ™Ăda JComponent, je potomkem tĹ™Ădy Container z knihovny AWT, která je potomkem tĹ™Ădy Component. Všechny komponenty swingu jsou pak potomky tĹ™Ădy JComponent. Bylo rozhodnuto, Ĺže ve verzi 1.2 bude tato knihovna zaÄŤlenÄ›na do standardnĂ knihovny Javy. PĹŻvodnÄ› se mÄ›la jmenovat nÄ›jak vzletnÄ› (PrvnĂ pĹ™ĂruÄŤky o nĂ hovoĹ™ili jako a Java Foundation Classes), ale pak se zjistilo, Ĺže uĹž je tak rozšĂĹ™ená mezi uĹživateli, Ĺže marketingovĂŠ oddÄ›lenĂ vymÄ›klo a ponechalo jĂ pĹŻvodnĂ název. Tolik velmi v kostce. Kdybys chtÄ›l nÄ›co podrobnÄ›ji, dej vÄ›dÄ›t. Příspěvek zaslán emailem Re: awt vs Swing vs Java2D
Vloženo uživatelem: Zerog - uživatel již zaslal 301 příspěvků (IP uloženo)
Datum: 02. 02. 2010 16:44
Aha. Tak to se omlouvam. Ja myslel ze AWT je pomalejsi kvuli tomu, ze se snazilo byt vlaknove bezpecne, ale nejak se to nedarilo. (protoze jinak je logicke, ze se nativni kod provede rychleji, nez kod pres JVM)
Jestli to tak neni, tak jsem doted zil v omylu nebo jsem si to s necim spletl. ![]() -------------------- javatar and .NOT http://www.youtube.com/watch?v=9QFK1cLhytY Re: awt vs Swing vs Java2D
Vloženo uživatelem: Behnil - uživatel již zaslal 107 příspěvků (IP uloženo)
Datum: 02. 02. 2010 16:44
Sakrys, tvuj prispevek tu vidim trochu jako rozsypanej caj Jinak super, diky za vsem za odpovedi.
Jeste tedy posledni otazka. Proc vzniklo SWT jako alternativa ke Swingu, ktera pouziva nativni komponenty OS. Vzdyt presne takhle preci funguje AWT. Re: RE: awt vs Swing vs Java2D
Vloženo uživatelem: rudyment - uživatel již zaslal 203 příspěvků (IP uloženo)
Datum: 02. 02. 2010 17:40
Příspěvek je rozsypaný, protože jsem jej nepsal na webu, ale poslal z Outlooku, který vše kóduje platformně nezávisle do UTF-8, a to asi není pro tuto konferenci to pravé ořechové. Tak ještě jednou - kdo minulýá příspěvek přelouskal, už nemusí čáíst znovu:
> ... Rozdíl je ten ze AWT je > predchudce Swingu. Dnes se moc nepouziva nebot je pomalejsi nez Swing. > (ma i jine rozdily) Ani náhodou. AWT je naopak rychlejší než swing, protože si nechává vše kreslit od operačního systému jeho maximální rychlostí, kdežto swing si většinu věcí kreslí sám. AWT vzniklo těsně před uvedením Javy. Java původně žádnou okenní knihovnu neměla a měsíc před uvedením si marketingové oddělení vymyslelo, že by se mohla hodit. Tak programátoři sedli a urychleně nějakou knihovnu naprogramovali. Bohužel, tato knihovna měla některé "rychlokvašené rysy", takže některé její věci hned ve verzi 1.1. předělali. Koncepce platná pro verzi 1.1 je (byť s jistými úpravami) platná dodnes. Knihovna AWT je rychlá a relativně malá. Vždy respektuje aktuální platformu, protože klíčové komponenty získává od ní. To má jednu nevýhodu: mohou v ní být pouze takové komponenty, které najdete ve všech platformách (Windows, Linux, MacOs, ...). V komunitě proto záhy po uvedení Javy začala vznikat nová knihovna pracovně nazvaná swing. Protože nemohla být umístěna v balíčku java (viz definice jazyka), vymysleli pro ni její autoři balíček javax – knihovna je tedy v balíčku javax.swing. Tato knihovna využívala některé části knihovny awt (např. mechanizmus událostí, správce rozvržení) a své komponenty definovala jako potomky komponenty knihovny awt - přesněji rodič všech swingových komponent, třída JComponent, je potomkem třídy Container z knihovny AWT, která je potomkem třídy Component. Všechny komponenty swingu jsou pak potomky třídy JComponent. Bylo rozhodnuto, že ve verzi 1.2 bude tato knihovna začleněna do standardní knihovny Javy. Původně se měla jmenovat nějak vzletně (První příručky o ní hovořili jako a Java Foundation Classes), ale pak se zjistilo, že už je tak rozšířená mezi uživateli, že marketingové oddělení vyměklo a ponechalo jí původní název. Tolik velmi v kostce. Kdybys chtěl něco podrobněji, dej vědět. Re: awt vs Swing vs Java2D
Vloženo uživatelem: rudyment - uživatel již zaslal 203 příspěvků (IP uloženo)
Datum: 02. 02. 2010 17:47
SWT reagovalo na to, že první verze swingu byly velmi pomalé. Vyšli proto z koncepce awt a vše, co najdou v operačním systému, použijí od něj. SWT proto, na rozdíl od swingu, neumožňuje definovat různé L&F (Look and Feel).
Na rozdíl od AWT však SWT nezůstalo u "největšího společného dělitele" a vše, co daná platforma nativně nepodporuje, dodefinuje samo. Mohli bychom tedy říct, že nabízí schopnosti swingu při rychlosti awt. Nicméně přiznejme si, že to je pouze reklamní slogan a že to s SWT zase není tak růžové, takže v současné době použití swingu převažuje, a to z několika důvodů: - Je doopravdy platformně nezávislý (Jakmile někde běhá Java, běhá tam i swing. U SWT je třeba nejprve počkat, až pro danou platformu někdo vyvine příslušnou knihovnu.) - Jeno návrh je objektově čistší, takže lze snáze definovat vlastní komponenty - V současné době jsou již rychlosti obou knihoven srovnatelné, takže hlavní důvod pro použití swt odpadl Re: awt vs Swing vs Java2D
Vloženo uživatelem: Zerog - uživatel již zaslal 301 příspěvků (IP uloženo)
Datum: 02. 02. 2010 21:02
A s tou vlaknovou bezpecnosti to je jak? To co jsem rikal to je uplne mimo misu?
Diky. -------------------- javatar and .NOT http://www.youtube.com/watch?v=9QFK1cLhytY Re: awt vs Swing vs Java2D
Vloženo uživatelem: rudyment - uživatel již zaslal 203 příspěvků (IP uloženo)
Datum: 03. 02. 2010 07:26
Vláknově bezpečná není ani jedna knihovna. Ono to ani dost dobře nejde.
Docela pěkně to vysvětluje článek Multithreaded toolkits: A failed dream? na http://weblogs.java.net/blog/kgh/archive/2004/10/multithreaded_t.html. To ale ještě neznamená, že pro swing není možno psát stabilní programy. Swing kvůli tomu přišel s několika třídami, jejichž metody to usnaňují. Příslušný výklad lze najít v Java Tutorial. AWT se takovou pomocí už moc nezabývá, protože se jeho komponenty vzhledem k jejich omezeným možnostem již moc nepoužívají. Při současném výkonu počítačů a vylepšené knihovně už swing nijak výrazně nezdržuje, takže i rychlostní důvody padly. Toto fórum je provozováno také jako emailová konference s e-mailovou adresou java [a] builder.cz. Toto je neredigovaná a nemoderovaná diskuse čtenářů serveru Builder.cz. Redakce ani provozovatel serveru za obsah jednotlivých příspěvků nenese zodpovědnost. |