[Grafika] [WebTip] [Fotografování] [Galerie] [MujMac] [Printing]
  Redakce: info@builder.cz   Inzerce: reklama@grafika.cz

 Diskuzní forum: Java

Té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? smiling smiley

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 smiling smiley

--------------------
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 smiling smiley

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 smiling smiley 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 smiling smiley nebo jsem si to s necim spletl. sad smiley

--------------------
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 smiling smiley 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.




Vaše jméno: 
Váš e-mail: 
Předmět: 

:-)  :-(  ;)  :D  :S  spatne  dobre  bold  italic  email  citace  odkaz  obrazek 
Antispam ochrana u neregistrovaných uživatelů - opište čísla z obrázku:
  

Toto fórum je provozováno také jako emailová konference s e-mailovou adresou java [a] builder.cz.
Podrobný návod jak se k odběru zpráv e-mailem přihlásit naleznete v tomto návodu.




  



Toto je neredigovaná a nemoderovaná diskuse čtenářů serveru Builder.cz. Redakce ani provozovatel serveru za obsah jednotlivých příspěvků nenese zodpovědnost.

info@builder.cz
Vydává Grafika Publishing, s.r.o.
Copyright (c) 1997-2005 Všechna práva vyhrazena
Pro diskuzní fóra využíváme software z phorum.org