what is java awt
Este tutorial Java AWT explica o que é Abstract Window Toolkit em Java e conceitos relacionados como AWT Color, Point, Graphics, AWT vs Swing, etc:
Fomos apresentados aos termos básicos da GUI em um de nossos tutoriais anteriores. Neste tutorial, discutiremos uma das estruturas GUI mais antigas em Java, chamada “AWT Framework”. AWT é a abreviatura de “Abstract Window Toolkit”.
AWT é uma API para a criação de aplicativos GUI em Java. É uma estrutura dependente da plataforma, ou seja, os componentes GUI pertencentes ao AWT não são os mesmos em todas as plataformas. De acordo com a aparência nativa da plataforma, a aparência dos componentes AWT também muda.
=> Verifique TODOS os tutoriais Java aqui.
O que você aprenderá:
JAVA AWT (Abstract Window Toolkit)
O Java AWT cria componentes chamando as sub-rotinas de plataformas nativas. Conseqüentemente, um aplicativo AWT GUI terá a aparência do sistema operacional Windows quando executado no Windows e a aparência do Mac OS quando executado no Mac e assim por diante. Isso explica a dependência da plataforma dos aplicativos Abstract Window Toolkit.
Devido à sua dependência de plataforma e um tipo de natureza pesada de seus componentes, ele raramente é usado em aplicativos Java atualmente. Além disso, também existem frameworks mais novos, como Swing, que são leves e independentes de plataforma.
O Swing tem componentes mais flexíveis e poderosos quando comparado ao AWT. O Swing fornece componentes semelhantes ao Abstract Window Toolkit e também possui componentes mais avançados, como árvores, painéis com guias, etc.
Mas uma coisa a notar aqui é que o Framework Java Swing é baseado no AWT. Em outras palavras, Swing é uma API aprimorada e estende a estrutura do Abstract Window Toolkit. Portanto, antes de pular para os tutoriais do Swing, vamos ter uma visão geral dessa estrutura.
Hierarquia e componentes AWT
Agora vamos ver como é a hierarquia do Abstract Window Toolkit em Java.
A seguir está o diagrama da hierarquia AWT em Java.
Conforme mostrado na figura acima, o componente raiz AWT ‘Componente’ se estende da classe ‘Objeto’. A classe do componente é o pai dos outros componentes, incluindo Label, Button, List, Checkbox, Choice, Container, etc.
Um contêiner é dividido em painéis e janelas. Uma classe Applet deriva de Panel enquanto Frame e Dialog derivam do componente Window.
Agora vamos discutir brevemente esses componentes.
Classe de Componente
A classe Component é a raiz da hierarquia. Um componente é uma classe abstrata e é responsável pelas cores de fundo e de primeiro plano atuais, bem como pela fonte do texto atual.
A classe do componente encapsula as propriedades e atributos do componente visual.
Recipiente
Os componentes AWT do contêiner podem conter outros componentes como texto, rótulos, botões, tabelas, listas, etc. O contêiner mantém uma guia sobre outros componentes que são adicionados à GUI.
Painel
O painel é uma subclasse da classe Container. Um painel é uma classe concreta e não contém o título, a borda ou a barra de menus. É um contêiner para armazenar os outros componentes. Pode haver mais de um painel em uma moldura.
Aula de janela
A classe Windows é uma janela no nível superior e podemos usar quadros ou caixas de diálogo para criar uma janela. Uma janela não possui bordas ou barras de menu.
Quadro
Frame deriva da classe Window e pode ser redimensionado. Um quadro pode conter vários componentes como botão, rótulos, campos, barra de título, etc. O quadro é usado na maioria dos aplicativos Abstract Window Toolkit.
eu não tenho um gateway padrão
Um quadro pode ser criado de duas maneiras:
# 1) Usando o objeto da classe Frame
Aqui, criamos um objeto da classe Frame instanciando a classe Frame.
Um exemplo de programação é fornecido abaixo.
import java.awt.*; class FrameButton{ FrameButton (){ Frame f=new Frame(); Button b=new Button('CLICK_ME'); b.setBounds(30,50,80,30); f.add(b); f.setSize(300,300); f.setLayout(null); f.setVisible(true); } public static void main(String args[]){ FrameButton f=new FrameButton (); } }
Resultado:
# 2) Estendendo a classe Frame
Aqui, criamos uma classe que estende a classe Frame e, a seguir, criamos os componentes do frame em seu construtor.
Isso é mostrado no programa abaixo.
import java.awt.*; class AWTButton extends Frame{ AWTButton (){ Button b=new Button('AWTButton'); b.setBounds(30,100,80,30);// setting button position add(b);//adding button into frame setSize(300,300);//frame size 300 width and 300 height setLayout(null);//no layout manager setVisible(true);//now frame will be visible, by default not visible } public static void main(String args[]){ AWTButton f=new AWTButton (); } }
Resultado:
Classe de cor AWT
A saída AWT que mostramos acima tinha cores padrão de fundo e primeiro plano. O Abstract Window Toolkit fornece uma classe Color que é usada para criar e definir a cor dos componentes. Também podemos definir as cores dos componentes usando uma estrutura por meio das propriedades do componente.
A classe Color nos permite fazer o mesmo programaticamente. Para tanto, a classe Color usa o modelo de cores RGBA (RGBA = RED, GREEN, BLUE, ALPHA) ou HSB (HSB = HUE, SATURATION, BRIComponents).
Não entraremos em detalhes desta aula, pois está além do escopo deste tutorial.
A tabela a seguir lista os vários métodos fornecidos pela classe Color.
Construtor / Métodos | Descrição |
---|---|
getBlue () | Retorna o componente de cor azul no intervalo 0-255. |
mais brilhante () | Crie uma versão mais brilhante da cor atual. |
createContext (ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform x, RenderingHints h) | Retorna um novo PaintContext. |
mais escura() | Cria uma versão mais escura da cor atual. |
decodificar (String nm) | Retorna uma cor opaca especificada, convertendo a string em um inteiro. |
igual a (objeto obj) | Verifica se o objeto de cor fornecido é igual ao objeto atual. |
getAlpha () | Retorna o valor alfa da cor variando de 0 a 255. |
getColor (String nm) | Retorna uma cor das propriedades do sistema. |
getColor (String nm, Cor v) | |
getColor (String nm, int v) | |
getColorComponents (ColorSpace cspace, float [] compArray) | Retorna uma matriz do tipo float contendo os componentes de cor do ColorSpace especificado. |
getColorComponents (float [] compArray) | Retorna uma matriz do tipo float contendo os componentes de cor do ColorSpace da Color. |
getColorSpace () | retorna o ColorSpace da cor atual. |
getGreen () | Retorna o componente de cor verde no intervalo de 0 a 255 no espaço sRGB padrão. |
fique vermelho () | Retorna o componente de cor vermelha no intervalo 0-255 no espaço sRGB padrão. |
getRGB () | Retorna o valor RGB da cor atual no sRGB ColorModel padrão. |
getHSBColor (float h, float s, float b) | Cria um objeto Color usando o modelo de cores HSB com valores especificados. |
getTransparency () | retorna o valor de transparência para esta cor. |
hashCode () | Retorna o código hash para esta cor. |
HSBtoRGB (float h, float s, float b) | Converta o HSB fornecido em um valor RGB |
RGBtoHSB (int r, int g, int b, float [] hsbvals) | converte os valores RGB fornecidos em valores HSB. |
Ponto AWT em Java
A classe Point é usada para indicar um local. A localização é de um sistema de coordenadas bidimensional.
Métodos | Descrição |
---|---|
para sequenciar() | Retorne a representação em string do ponto. |
é igual a (objeto) | Verifique se dois pontos são iguais. |
getLocation () | Retorna a localização do ponto atual. |
hashCode () | Retorna o código hash do ponto atual. |
move (int, int) | Move o ponto fornecido para a localização fornecida no sistema de coordenadas (x, y). |
setLocation (int, int) | Altera a localização do ponto para a localização especificada. |
setLocation (Point) | Define a localização do ponto para a localização fornecida. |
traduzir (int, int) | Traduza o ponto atual para apontar em x + dx, y + dy. |
Classe de gráficos AWT
Todos os contextos gráficos no Abstract Window Toolkit para desenhar componentes em um aplicativo derivam da classe Graphics. Um objeto da classe Graphics contém as informações de estado necessárias para renderizar as operações.
As informações de estado geralmente contêm:
- Qual componente deve ser desenhado?
- Coordenadas de renderização e recorte.
- A cor, fonte e clipe atuais.
- A operação atual no pixel lógico.
- A cor XOR atual
A declaração geral da classe Graphics é a seguinte:
public abstract class Graphics extends Object
Modo sem cabeça AWT e exceção sem cabeça
Quando temos um requisito de que devemos trabalhar com o aplicativo baseado em gráficos, mas sem um teclado, mouse ou mesmo monitor de verdade, isso é chamado de ambiente “sem cabeça”.
A JVM deve estar ciente desse ambiente sem controle. Também podemos definir o ambiente sem controle usando o Abstract Window Toolkit.
Existem certas maneiras de fazer isso, conforme mostrado abaixo:
# 1) Defina a propriedade do sistema “java.awt.headless” como true usando o código de programação.
#dois) Use a linha de comando para definir a seguinte propriedade do modo headless como true:
java -Djava.awt.headless = true
# 3) Adicione “-Djava.awt.headless = true” à variável de ambiente chamada “JAVA_OPTS” usando um script de inicialização do servidor.
Quando o ambiente não tem interface e temos um código que depende do monitor, teclado ou mouse, e quando esse código é executado em um ambiente sem interface, a exceção “HeadlessException” é gerada.
A declaração geral de HeadlessException é fornecida abaixo:
public class HeadlessException extends UnsupportedOperationException
Optamos pelo modo headless em aplicativos que requerem, por exemplo, login de imagem baseado em imagem. Por exemplo, se quisermos mudar a imagem a cada login ou cada vez que a página for atualizada, então, nesses casos, carregaremos a imagem e não precisaremos de teclado, mouse, etc.
Java AWT Vs Swing
Vejamos agora algumas das diferenças entre Java AWT e Swing.
AWT | Balanço |
---|---|
AWT trabalha com 21 pares ou widgets do sistema operacional que correspondem a cada componente. | O Swing funciona com apenas um par que é objeto de janela. Todos os outros componentes são desenhados pelo Swing dentro do objeto Window. |
AWT significa “Abstract Windows Toolkit”. | Swing é derivado de Java Foundation Classes (JFC). |
Os componentes do AWT são pesados, pois o AWT faz chamadas de sub-rotinas diretamente para as sub-rotinas do sistema operacional. | Os componentes do Swing são escritos na parte superior do AWT e, como tal, os componentes são leves. |
Os componentes AWT fazem parte do pacote java.awt. | Os componentes Swing são parte do pacote javax.swing. |
AWT depende da plataforma. | Os componentes Swing são escritos em Java e são independentes de plataforma. |
AWT não tem sua aparência e comportamento. Ele adapta a aparência da plataforma em que é executado. | O Swing oferece uma aparência e um toque diferentes. |
AWT possui apenas recursos básicos e não oferece suporte a recursos avançados, como mesa, painel com guias, etc. | Swing fornece recursos avançados como painel JTabbed, JTable, etc. |
AWT é tão bom quanto uma fina camada de classes sobre o sistema operacional, o que o torna dependente da plataforma. | O Swing é maior e também contém uma funcionalidade rica. |
AWT nos faz escrever muitas coisas. | O Swing tem a maioria dos recursos integrados. |
perguntas frequentes
P # 1) O que é AWT em Java?
Responda: AWT em Java também conhecido como “Abstract Window Toolkit”, que é uma estrutura de interface gráfica com o usuário dependente da plataforma que precede a estrutura Swing. É uma parte da API GUI padrão Java, Java Foundation Classes ou JFC.
P # 2) O Java AWT ainda é usado?
Responda: É quase obsoleto em Java, exceto alguns componentes que ainda são usados. Além disso, ainda existem alguns aplicativos ou programas antigos em execução em plataformas mais antigas que usam AWT.
P # 3) O que é AWT e Swing em Java?
perguntas e respostas da entrevista do testador qa pdf
Responda: Abstract Window toolkit é uma API dependente de plataforma para desenvolver aplicativos GUI em Java. Por outro lado, um Swing é uma API para desenvolvimento de GUI e é derivado de Java Foundation Classes (JFC). Os componentes AWT são pesados, enquanto os componentes Swing são leves.
P # 4) Qual é o quadro em Java AWT?
Responda: Um quadro pode ser definido como a janela do componente de nível superior que possui um título e uma borda. A moldura tem 'Layout de borda' como seu layout padrão. Os frames também geram eventos de janelas como Fechar, Abrir, Fechar, Ativar, Desativar, etc.
P # 5) O que é importar Java AWT?
Responda: Import Java AWT (import java.awt. *) Indica que precisamos da funcionalidade da API AWT em nosso programa para que possamos usar seus componentes como TextFields, Buttons, Labels, List, etc.
Conclusão
Neste tutorial, discutimos a visão geral do Abstract Window Toolkit, como uma API dependente de plataforma para desenvolvimento de GUI em Java. É quase obsoleto em Java e está sendo substituído por outras APIs como Swings e JavaFX.
Não entramos em detalhes de todos os componentes do Abstract Window Toolkit, uma vez que eles raramente são usados agora. Portanto, discutimos apenas componentes como Frames, Color, etc. e o modo headless que é definido usando AWT.
No próximo tutorial, começaremos com os tutoriais Java Swing e os discutiremos em detalhes, já que a maioria dos aplicativos Java hoje usa Swing para desenvolvimento de GUI.
=> Veja a série de treinamento simples em Java aqui.
Leitura recomendada
- Interface Java e tutorial de classe abstrata com exemplos
- Java Basics: Java Syntax, Java Class e Core Java Concepts
- Java Integer e classe Java BigInteger com exemplos
- Tipos de classes em Java: abstrato, concreto, final, estático
- Implantação Java: Criação e execução de arquivo JAR Java
- Tutorial de classe de scanner Java com exemplos
- Construtores Private, Abstract, Array e String em Java
- Java Class Vs Object - Como usar classe e objeto em Java