AWT, SWING, como funciona?

2 respostas
E

:shock: Ola galera, estou novamente com uma curiosidade de estudante,
já li os artigos da sun sobre o funcionamento da JVM e não encontrei referencia alguma sobre como é possivel criar janelas e botões a nivel de JVM, alguem poderia me dizer se a JVM pede para o SO construir as janela e tantos outros componentes, ou se a JVM desenha tudo? como isso funciona por tras dos panos?

Desde de já, agradeço!!!

2 Respostas

D

Olha, posso tentar passar uma noção básica; talvez alguém extenda isso para algo mais concreto.

Antes do Java 2, os desenvolvedores da Sun queixavam-se “write once, debug in everywhere” (escreva uma vez, depure em todo lugar) satirizando o slogam “write once, run everywhere” (escreva uma vez, rode em todo lugar).

Com o Java 2 e as extensões Swing, a sun aproximou o seu slogam da realidade.

O problema com o AWT original é que, como o Java utilizava-se do conjunto de widgets (window gagets - elementos de janela) do sistema operacional subjacente, ele ficava limitado a um mínimo denominador. Por que? Porque, evidentemente, o Windows, por exemplo, tem um conjunto de widgets bem mais rico que o Motif, por exemplo. Isso era um problema realmente.

Com o Java 2, o modelo Swing implementa uma arquitetura que independe dos widgets do sistema operacional subjacente. Isso significa que ele solicita ao sistema operacional apenas o “canvas” e, ele próprio (as basic UIs, na verdade), desenham nesse canvas.

Espero ter ajudado.
Abraços.

dukejeffrie

Olá, Emerson.

O Swing é implementado em cima da AWT; a AWT é um ESQUEMA de implementação de widgets. Até aí tudo bem.

Mas o que nem todo mundo sabe é que a awt é plugável!! Sim, mudando uma System Property vc pode escolher qual implementação de AWT vc quer usar.

A implementação da Sun usa o SO para desenhar retângulos e fazer blitting (somar matrizes de pixels de forma a sobrepor desenhos).

Uma outra implementação de AWT é a tal PJA Toolkit:
www.eteks.com/pja/en/

A grande vantagem é não precisar de um ambiente gráfico para manipular canvas. Vc continua não podendo abrir janelas, mas pode, por exemplo, ler o conteúdo de um JPEG.

a PJA, até onde eu sei, não funciona com o jdk 1.4 ainda. Mesmo assim, acho que no JDK 1.4 a Sun enxugou ao máximo o quanto de SO é necessário. Acho que eles tão no esquema “aproveita se tiver, se vira se não tiver” (try once, do it anyway).

aquelão!!

Criado 11 de dezembro de 2002
Ultima resposta 11 de dez. de 2002
Respostas 2
Participantes 3