Aula 01 AWT (Abstract Window Toolkit)

A biblioteca AWT

A biblioteca AWT é uma GUI (Graphical User Interface), que delega a criação, estilo e comportamento para a GUI da plataforma nativa (Windows, Linux, Mac, …).

A ideia é que se você fizer uma caixa de texto no Windows ou Linux, o estilo será o mesmo da plataforma, atendendo à promessa de portabilidade do Java. Seu lema é “Write once, run anywhere”

Para aplicações simples o sistema funciona. O problema é que para aplicações mais complexas, mudanças sutis no comportamentos de Texfileds, scrrols ou menus podem mudar a experiência do usuário, e até causar bug diferentes em cada sistema. Isto acaba com a ideia de portabilidade, transformando o lema em “write once, debug everywhere”.

A biblioteca AWT foi introduzida no Java 1.0, no pacote “java.awt”.

A biblioteca Swing foi introduzida logo depois como uma extensão, no java 1.1, e como parte do pacote padrão no java 1.2, no pacote “javax.swing”.

A biblioteca Swing não delega a criação, estilo e comportamento da GUI para a plataforma nativa, mas toma para si este trabalho, conseguindo cumprir o objetivo de portabilidade.

A biblioteca Swing não é uma biblioteca alternativa ao AWT, mas uma biblioteca que complementa a AWT, sendo construida em cima da sua estrutura. Nesta primeira aula veremos apenas classes da AWT, mas a partir da próxima veremos sempre as duas classes. Normalmente objetos de interface são instâncias de classes do Swing, enquanto que administração de eventos são da AWT.

alt text 

O Frame

Um frame é uma janela de nível máximo, uma janela que não está dentro de nenhuma janela.

HelloFrame.java
/*Este código cria um frame
 * */

import java.awt.*;

public class HelloFrame{
  public static void main(String[] args){
    Frame myFrame = new Frame();
  }
}

Para que o objeto Frame apareça, você deve deixá-lo visível:

HelloFrame.java
/*Este código cria um frame e mostra
 * */

import java.awt.*;

public class HelloFrame{
  public static void main(String[] args){
    Frame myFrame = new Frame();
    myFrame.setVisible(true);
  }
}

Um frame começa com um tamanho mínimo, use o método setSize(int, int) para mudar o tamanho do frame

HelloFrame.java
/*Este código cria um frame, redimensiona e mostra
 * */

import java.awt.*;

public class HelloFrame{
  public static void main(String[] args){
    Frame myFrame = new Frame();
    myFrame.setSize(200, 200);
    myFrame.setVisible(true);
  }
}

Mas qual será o tamanho ideal?

Use o objeto Toolkit.getDefaultToolkit(), e o método kit.getScreenSize() para ter a dimensão da tela do usuário. Desta forma você pode usar a tela do usuário como parâmetro:

HelloFrame.java
/*Este código cria um frame, redimensiona usando a tela do usuario como parametro
 * */

import java.awt.*;

public class HelloFrame{
  public static void main(String[] args){
    Frame myFrame = new Frame("Titulo do meu frame");

    Toolkit kit = Toolkit.getDefaultToolkit();
    Dimension screenSize = kit.getScreenSize();
    int screenWidth = (int)screenSize.getWidth();
    int screenHeight = (int)screenSize.getHeight();
    myFrame.setSize(screenWidth/2, screenHeight/2);

    myFrame.setVisible(true);
  }
}