Buscar

Semana 8 - Interface gráfica

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Interface gráfica
Apresentação
Uma interface gráfica é o meio pelo qual o usuário interage com a aplicação, e o seu 
desenvolvimento é realizado utilizando uma linguagem de front-end. Em Java, por exemplo, uma 
interface é criada por meio de classes que pertencem aos pacotes AWT (abstract windows toolkit) e 
Swing, especificados como java.awt e javax.swing. Estes são distribuídos em um modelo hierárquico 
de classes a partir da classe Object do pacote java.lang. Portanto, alguns conhecimentos são 
importantes no desenvolvimento de uma interface gráfica, como herança, métodos e objetos, visto 
que Java é uma linguagem regida pelos princípios da orientação a objetos.
Nesta Unidade de Aprendizagem, você verá as instruções básicas para 
o desenvolvimento de uma interface gráfica. Além disso, conhecerá as diferenças entre front-end e 
back-end. 
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
Definir as instruções básicas para criação de interface gráfica.•
Diferenciar programação front-end e back-end.•
Desenvolver interfaces gráficas com Java.•
Infográfico
Uma interface é um conjunto de objetos agrupados de tal forma que permitem uma experiência 
interativa com o usuário. Os gerenciadores 
de layout são utilizados para organizar as informações em uma tela específica, atendendo às 
necessidades dos desenvolvedores ou designers de telas. Por exemplo, caso um desenvolvedor 
queira desenvolver uma tela de conversão de temperatura Fahrenheit para Célsius. Nesse caso, o 
desenvolvedor poderia utilizar um gerenciador de layout tipo grid 2x2, ou seja, a tela seria dividida 
em quatro células de mesmo tamanho, onde o desenvolvedor posicionaria os objetos de telas como 
a caixa de entrada do valor em Fahrenheit, a caixa de saída do valor convertido para Célsius e dois 
botões: um para limpar a caixa de entrada e outro para efetuar o cálculo. Cada objeto ocuparia uma 
célula no grid.
Neste Infográfico, você vai ver os tipos de gerenciadores de layout 
que podem ser usados no desenvolvimento de uma interface gráfica 
de usuário. 
Aponte a câmera para o 
código e acesse o link do 
conteúdo ou clique no 
código para acessar.
https://statics-marketplace.plataforma.grupoa.education/sagah/54a84027-dea5-47ca-afbe-0ed41f6c60cf/31040834-1d4a-4c7f-ac31-45f38ff5e0ff.jpg
 
Conteúdo do livro
A interface gráfica do usuário é o elo de ligação e interatividade entre ele e a aplicação. Esta é 
composta por diversas interfaces gráficas interligadas, e os elementos que compõem uma interface 
gráfica são os seguintes: botões, caixa de textos, imagens, rótulos, etc., elementos que são criados 
por classes na linguagem Java. Esta é uma linguagem de programação orientada a objetos com 
diversas classes, as quais são organizadas em pacotes hierarquicamente distribuídos, tendo diversos 
métodos próprios, além de acessar métodos de outras classes via princípio de herança. Cabe ao 
desenvolvedor entender e aplicar corretamente as classes e os métodos no desenvolvimento de 
uma interface gráfica do usuário.
No capítulo Interface gráfica, base teórica desta Unidade de Aprendizagem, você vai conhecer as 
principais classes e métodos usados no desenvolvimento de uma interface gráfica. Além disso, vai 
ver as diferenças entre linguagem front-end e back-end.
Boa leitura.
PROGRAMAÇÃO 
ORIENTADA A 
OBJETOS
OBJETIVOS DE APRENDIZAGEM
 > Definir as instruções básicas para criação de interface gráfica.
 > Diferenciar programação front-end e back-end.
 > Desenvolver interfaces gráficas com Java.
Introdução
No mundo da programação, as interfaces gráficas são as telas de interação entre 
as ações do usuário com um determinado software. Uma tela é composta, então, 
de vários objetos, como botões, caixas de entrada de texto, imagens, barras de 
rolagens, etc. (LECESSI, 2019).
Em programação Java, há diversos objetos que são utilizados na compo-
sição de uma tela. Esses objetos pertencem a pacotes como AWT (abstract 
windows toolkit) e ao pacote GUI (graphical user interface) SWING (LECESSI, 
2019). Esses objetos, na verdade, são classes de programação que têm funções 
e parâmetros, sendo utilizados no desenvolvimento de uma interface gráfica. 
O desenvolvimento de uma interface gráfica é conhecido como programação 
de front-end. Nessa programação, o desenvolvedor cria telas com objetivos de 
interação com o usuário baseado no propósito da tela (SAMOYLOV; SANAULLA 
2018). Esse desenvolvimento também é responsável pela experiência do usuário 
dentro da aplicação. 
Neste capítulo, vamos definir os conceitos relativos às classes utilizadas na 
construção de uma tela. Além disso, vamos diferenciar as linguagens front-end e 
back-end e, por fim, criar uma interface gráfica.
Interface gráfica
Paulo Sérgio Pádua de Lacerda
Componentes de uma interface gráfica
Uma interface gráfica é a tela por onde o usuário interage com a aplicação. 
Também conhecida como GUI (graphical user interface), é o modo gráfico 
das aplicações, ou seja, a parte visual. Uma interface é composta por diver-
sos elementos, como botões, ícones, vídeos, caixa de texto, rótulos, caixa 
dropdown, entre outros, utilizados na interação com usuário (LECESSI, 2019). 
Veja, na Figura 1, um exemplo de uma interface do usuário. Essa imagem é 
composta por diversos elementos. Por exemplo, o elemento janela é composto 
pelos botões de fechar (x) e ajuda (?), bem como por título (Enter System pas-
sword). O painel é composto de outros elementos, como uma imagem (ícone 
da chave), rótulos de textos representado o que o usuário deve fazer (Please 
enter your user name and password to log on in Operation System), dois botões 
(OK e Cancel), duas caixas de entrada de textos (User name e Password) e uma 
caixa de verificação (Save this password in your password list). 
Figura 1. Interface gráfica.
Fonte: Fleur_de_papier/Shutterstock.com.
Como objetivo, a Figura 1 apresenta uma tela de login para a validação 
do nome do usuário e da senha. Então, pode-se afirmar que uma aplicação 
completa é composta de várias telas que se interligam entre si, permitindo 
uma navegabilidade na aplicação (SCHILDT, 2015). Além disso, cada tela tem 
elementos que interagem com as ações do usuário, possibilitando capturar 
e validar dados, como a tela de login da Figura 1. 
Interface gráfica2
Portanto, na programação Java, o desenvolvimento de uma interface gráfica 
é possível por meio do uso de objetos (classes) pertencentes aos pacotes AWT 
e GUI SWING (HORSTMANN, 2009). Os pacotes no desenvolvimento Java são 
containers que agrupam classes, pois a linguagem Java é uma programação 
orientada a objetos. Por isso, as classes são formadas por atributos e méto-
dos que, quando utilizados na programação de uma interface, resultam nos 
objetos de tela, como botões, imagens, painéis, etc. 
Esses pacotes e classes estão estruturados em forma de uma árvore 
hierárquica e dispostos para serem usados na programação da uma inter-
face. Veja, na Figura 2, o componente Button (classe Button). Note que ele 
pertence à classe Component, que pertence ao pacote java.awt. Então, 
a classe Button é uma subclasse da classe Component. 
Figura 2. Classe Button do container java.awt.
A classe Button do container java.awt é responsável por criar elementos 
tipo botão na interface do usuário por meio de métodos construtores como 
Button() ou Button(String label). 
Toda e qualquer classe em Java é filha da superclasse ou classe-mãe 
conhecida como Object, pertencente ao pacote java.lang.
Entretanto, as classes do pacote java.awt para a criação de objetos de 
interfaces gráficas estão em desuso, pois esse pacote foi o primeiro conjunto 
de classes criadas para o desenvolvimento de objetos a serem usados em 
telas gráficas na programação Java e não tem compatibilidade com todas 
as plataformas. Porém, hoje, se você deseja construir uma aplicação gráfica 
Interface gráfica 3
com Java, você deve utilizar as classes do pacote Java SWING, conhecidocomo 
javax.swing (FINEGAN; LIGUORI, 2015). Esse pacote é um avanço do pacote 
java.awt, tem novos elementos e compatibilidade com todas as plataformas. 
Veja, na Figura 3, a estrutura hierárquica do pacote javax.swing para 
a classe JButton. Essa classe cria objetos tipo botão para ser utilizada na 
interface gráfica do usuário. 
Figura 3. Classe JButton do container javax.swing.
A estrutura hierárquica apresentada na Figura 3 é maior que a Figura 2, 
pois agora há outros pacotes hierarquicamente distribuídos que determinam 
o acesso à classe JButton. Além do mais, a classe JButton tem diver-
sos métodos construtores que são utilizados na criação do botão, como 
JButton(), JButton (Action a), JButton(Icon a), JButton (String 
text) e JButton (String text, Icon a). Todos esses métodos são 
utilizados na criação do botão e dependem do requisito para a criação. Por 
exemplo, para um botão somente com texto, o método JButton (String 
text) deverá ser usado; porém, para um botão que contenha um ícone e um 
texto, o método JButton (String text, Icon a) deverá ser o usado.
Se você deseja saber mais sobre as classes pertencentes aos pacotes 
java.awt e javax.swing, acesse, pela web, o Oracle Help Center. 
Lá você encontrará uma vasta documentação sobre os pacotes, as classes e os 
métodos utilizados no desenvolvimento de uma interface gráfica. 
Interface gráfica4
Cada elemento do pacote javax.swing tem métodos próprios e pode 
herdar métodos de classes hierarquicamente superiores, além de implementar 
interfaces. Vamos a exemplo utilizando a classe JButton (SCHILDT, 2015). 
Na Figura 4, foi utilizando o JFrame, do pacote javax.swing, para a criação 
do painel visando à inserção do objeto. Observe, no exemplo, que diversos 
métodos foram utilizados tanto no objeto painel quanto no objeto do botão. 
Figura 4. Exemplo com JButton e JFrame.
Note, na linha 7 da Figura 4, o comando para a criação do painel com 
JFrame e o texto da barra de título. A linha 8 cria variável com o conteúdo 
texto, enquanto a linha nova mostra a criação do objeto b (botão) utilizando 
o método construtor da classe JButton com o parâmetro texto. A linha 
10 mostra o método da classe JButton, setBound(x,y,h,v). Esse método 
determina a posição de aparecimento do botão no painel, nesse caso na 
posição (x=0, y=0), canto superior esquerdo do painel, e um container de 
dimensões (h=90, v=20), ou seja, uma área de dimensões horizontal de 90 
e vertical de 20. Em seguida, vemos métodos associados ao painel, como o 
método add(), na linha 11, que adiciona o botão no painel, o método setSize, 
que determina as dimensões horizontal e vertical do painel, e os métodos 
setVisible (true), para tornar o painel visível, e setLayout(null), para 
especificar nenhum tipo de leiaute. 
Interface gráfica 5
Veja, na Figura 5, o resultado do código apresentado na Figura 4. Note 
que esse código foi desenvolvido na ferramenta de desenvolvimento Eclipse 
Version: 2020-03 (4.15.0) Build id: 20200313-1211. 
Figura 5. Resultado do código da Figura 4.
Note que uma janela com ícone do Java e os botões de minimizar, maximizar 
e fechar é apresenta na Figura 5. Essa janela é gerada pela classe JFrame. 
Como conteúdo, temos o botão gerado pelo JButton (string texto).
Agora, vamos apresentar algumas classes pertencentes ao pacote java.
swing que são utilizadas na criação dos objetos de tela (Quadro 1). 
Quadro 1. Classes do pacote javax.swing
Classe Descrição Construtores
JLabel Cria criação de rótulos JLabel(String texto, 
Icon icon, int 
alinhamento)
JButton Cria a criação de botões JButton(String text, 
Icon icon)
JRadioButton Cria botão de opções JRadioButton(String 
text, Icon icon, 
boolean selected)
JPasswordField Cria uma caixa de senha JPasswordField(String 
text, int columns)
JCheckBox Cria um caixa de 
verificação
JCheckBox(String text, 
Icon icon, boolean 
selected)
(Continua)
Interface gráfica6
Classe Descrição Construtores
ImageIcon Cria um objeto para 
inserir imagem
ImageIcon(URL location, 
String description)
ImageIcon(String 
filename, String 
description)
ImageIcon(Image image, 
String description)
JComboBox Cria uma caixa 
dropdown com opções
JComboBox(Vector<E> 
items)
JComboBox(E[] items)
JMenu Cria um menu de opções JMenu(String s, boolean 
b)
JTextField Cria uma caixa de 
entrada de texto
JTextField(String text, 
int columns)
JMenuItem Cria opções de Menu JMenuItem(String text, 
Icon icon)
JMenuBar Cria a barra de menu JMenuBar()
JOptionPane Cria caixa de diálogo JOptionPane()
JCheckBoxMe-
nuItem
Cria opções de caixa de 
verificação selecionada 
ou não
JCheckBoxMenuItem(String 
text, 
Icon icon, boolean b)
Fonte: Adaptado de Lecessi (2019). 
Logo, você pode verificar que há variações de método construtores de 
acordo com o elemento a ser criado. Por exemplo, o elemento JMenuBar 
pode ser criado somente utilizando o método construtor simples JMenuBar() 
sem passagem de qualquer parâmetro. Já o método que cria uma caixa texto 
na tela do usuário tem duas opções: a primeira passando um vetor de itens 
JComboBox(Vector<E> items) e a segunda passando um array de itens 
JComboBox(E[] items). Entretanto, há outros métodos que podem ser 
usados de acordo com a necessidade de uso do objeto, a exemplo do objeto 
JOptionPane. Esse objeto tem alguns tipos diferentes de métodos, como 
(HORSTMANN, 2009):
(Continuação)
Interface gráfica 7
 � showConfirmDialog, que abre uma caixa de diálogo de questiona-
mento de ação com os valores SIM/NÃO/CANCELA (Yes/No/Cancel);
 � ShowInputDialog, que abre uma caixa de entrada de dados;
 � showMessageDialog, que avisa o usuário a respeito de algo ocorrido, 
ou seja, mostra uma mensagem na tela em forma de pop-up.
João é um desenvolvedor júnior da empresa Solar Alimentos. Hoje, 
a empresa Solar Alimentos tem um sistema de administração desen-
volvido com a linguagem Java e telas sem muita interatividade com o usuário. 
Por ser uma empresa pequena, o sistema, até então, era o suficiente. Porém, 
na última semana, alguns problemas começaram a ocorrer no setor de vendas. 
Dados incorretos estavam sendo validados e excluídos durante a operação 
dos colaboradores. João, então, foi encarregado de resolver o problema, por-
que ele já estava comprometendo os procedimentos operacionais devido ao 
retrabalho, mas também nos negócios, pois o colaborador perdia tempo em 
resolver, por exemplo, a inserção de dados incorretos e não dava andamento 
nos procedimentos de venda. 
Diante desse cenário, João fez uma análise do incidente e chegou à conclusão 
de que a interface de venda não tinha um sistema de confirmação de registro ou 
exclusão dos dados. Assim, João implementou, nos botões de confirmação de 
registros, mensagens pop-ups com o método showConfirmDialog(),showMe
ssageDialog() no intuito de mostrar os dados novamente ao usuário e de que 
este confirmasse o tipo de operação. Com essa solução, João conseguiu resolver 
o problema das operações indevidas no sistema da empresa Solar Alimentos.
De fato, todos os elementos pertencentes ao pacote javax.swing são 
utilizados em forma de programação Java. Ou seja, mesmo que você utilize 
uma ferramenta RAD (rapid application development) ou simplesmente arraste 
e solte, há um código em Java detrás do objeto. Veja, na Figura 6, um exemplo 
da ferramenta Windows Builder com a opção “Application Window” no am-
biente de desenvolvimento integrado (IDE, do inglês integrated development 
environment) Eclipse. 
Interface gráfica8
Figura 6. Criando o botão graficamente.
A Figura 6 exibe cinco painéis.
1. O painel 1 mostra a estrutura do projeto em Java criado no IDE Eclipse. 
Contém os pacotes de organização do projeto, as classes, as interfaces, 
etc.
2. O painel 2 mostra a tela do usuário a ser desenvolvida.
3. O painel 3 mostra as opções de objetos que podem ser utilizados para o 
desenvolvimento da tela do usuário, como botões, labels, leiautes, etc.
4. O painel 4 especifica algumas propriedades do objeto selecionadoque podem ser alteradas.
5. O painel 5 mostra a estrutura hierárquica dos objetos utilizados na 
tela do usuário.
Veja, então, que você facilmente consegue criar as telas da sua aplicação. 
Porém, por trás de cada elemento gráfico, há um código-fonte, como mostra 
a Figura 7. 
Interface gráfica 9
Figura 7. Código-fonte.
Veja, na Figura 7, o código-fonte dos elementos de tela de usuário. Nesse 
exemplo, o objeto JFrame e o objeto JButton foram utilizados na criação 
dos objetos, o método setIcon foi utilizado para inserir uma imagem no 
botão, o método setForeground foi utilizado para inserir cor no texto e o 
método setBackgrund foi utilizado para inserir a cor de fundo do botão. 
Ainda, o método getContentPane() foi aplicado para adicionar o botão na 
região inferior do leiaute da tela.
A essa altura, você deve estar se questionando: o desenvolvimento de tela 
utiliza uma linguagem de back-end ou front-end? No caso do nosso exemplo, 
somente foi utilizada a linguagem Java. Esse assunto será detalhado a seguir.
Linguagem front-end ou back-end?
Como você foi apresentado a alguns objetos em Java que são utilizados no 
desenvolvimento de uma interface de usuário, vamos diferenciar as lingua-
gens de uso para a composição de uma tela conhecida como front-end e uma 
linguagem conhecida como back-end (SAMOYLOV; SANAULLA 2018). Porém, 
antes, vamos entender o porquê do uso de uma arquitetura no desenvolvi-
mento de uma aplicação. 
Interface gráfica10
Ao desenvolver uma aplicação, você precisa entender quais são as suas 
partes integrantes, como o design (parte visual da aplicação), as regras de 
negócios que serão implementadas, como a lógica do negócio, e a camada que 
tem acesso aos dados, conhecida como persistência de dados. Esse modelo 
de arquitetura é conhecido como arquitetura de três camadas: 
1. a camada um representa a parte visual da aplicação (interface do 
usuário); 
2. a camada dois representa a lógica do negócio;
3. a camada três representa o acesso aos dados (SCHILDT, 2015). 
Essa arquitetura é linear e toda informação passa pela camada de negócios 
em ambas as direções. Ou seja, a camada de apresentação tem comunicação 
com a camada de lógica de negócio, a qual, por sua vez, tem comunicação 
com a camada de acesso aos dados. A camada de apresentação é a tela do 
usuário, ou interface do usuário. 
As linguagens de front-end são responsáveis pelo desenvolvimento da 
tela e aspectos como interatividade e design, associados aos elementos de 
tela. Algumas linguagens são específicas de front-end, como HTML (HyperText 
Markup Language), Javascript, folha de estilo e Jquery, e são utilizadas prin-
cipalmente para o desenvolvimento de telas para plataformas web e móveis 
(LUCKOW; MELO, 2015). Já outras linguagens são específicas para o uso em 
back-end, camada lógica do negócio, como PHP, C#, C++, Perl, Ruby e Java, 
além do uso de banco de dados, como MySQL, Oracle, etc., para representar 
a camada de persistência (LUCKOW; MELO, 2015). 
Plataformas como web e mobile são mais fáceis para o entendimento das 
diferenças entre linguagem de front-end e back-end, pois geralmente fazem 
uso de linguagens diferentes, como HTML, Javascript e CSS para a criação de 
páginas, e PHP para lógica do negócio (LUCKOW; MELO, 2015).
Com a evolução da tecnologia, muitas linguagens são criadas e 
favorecem o desenvolvimento para novas plataformas. O React é 
um exemplo dessas novas linguagens utilizam bibliotecas Javascript para o 
desenvolvimento de aplicações para plataformas web e mobile. Uma aplica-
ção desenvolvida no React usa a linguagem Javascript como base para todo o 
desenvolvimento. Mesmo assim, há como identificar a parte das camadas de 
apresentação, negócio e persistência de dados. 
Interface gráfica 11
Como descrito anteriormente, o pacote javax.swing contém diversas 
classes que criam elementos de tela. Essa programação, mesmo na lingua-
gem Java, é considerada uma linguagem front-end, pois é utilizada para 
criar interfaces gráficas. Essas interfaces dentro de uma arquitetura, por 
exemplo, de três camadas, pertencem à camada de apresentação (camada 
1) (LECESSI, 2019). Portanto, todo e qualquer código associada aos elementos 
de tela são considerados programação front-end. Vamos a um exemplo de 
uma tela de login. Veja, na Figura 8, que a tela compreende três objetos, além 
da janela da aplicação: dois elementos tipo caixa de entrada (JTextField e 
JPasswordField), um botão (JButton) e uma janela (JFrame). 
Figura 8. Tela de login.
Veja que a tela de usuário é gerada pelo código que aparece detrás da 
imagem. Esse código, então, pode ser considerado um código-fonte tipo front-
-end, pois gera os elementos que compõem a interface do usuário. Mesmo 
que houvesse uma validação dos dados, esse código ainda estaria associado 
à camada de apresentação, não a uma regra de negócio, e toda a operação 
estaria associada à tela de apresentação.
Interface gráfica12
Já as linguagens de back-end executam a regra de negócios, ou seja, re-
cebem os dados da camada de front-end, processam, armazenam e retornam 
uma resposta ao usuário (SCHILDT, 2015). Vamos supor uma tela de controle 
de vendas. Toda a programação da tela é linguagem de front-end, mas o pro-
cessamento dos dados (número da venda, valor total, item de venda, dia da 
venda, hora da venda, nome do vendedor, quantidade de produtos, valor de 
comissão e conexão de com banco de dados) e as rotinas de armazenamento 
nas devidas tabelas no banco de dados são considerados back-end.
O modelo model view control (MVC) muitas vezes é confundido com 
uma arquitetura de três camadas. Porém, esse modelo é um padrão 
de projetos e pode ser utilizado para ampliar as funcionalidades da camada de 
apresentação do modelo de três camadas.
Na próxima seção, veremos um pequeno projeto de criação de uma interface 
de usuário. Serão detalhados, para isso, os métodos e parâmetros contidos 
nos elementos de tela. 
Criação de uma interface de usuário
A interação do homem com o computador sempre foi alvo de estudos por 
parte das grandes empresas de informática. Ao longo do tempo, passou 
de simples comandos, modo estritamente textual, para interfaces gráficas 
tanto simples quanto complexas, que são compostas de diversos elementos 
que permitem a interação do usuário com a aplicação. Em Java, utilizando 
as classes do pacote javax.swing, você pode criar interfaces de aplica-
ção. Então, vamos demonstrar como criar uma interface gráfica de usuário. 
Os procedimentos a seguir serão executados no IDE Eclipse, mas podem ser 
executados em outros, como NetBeans, por exemplo. 
Interface gráfica 13
Nosso exemplo será uma tela de cadastro de clientes de um sistema de 
vendas. Esse sistema é composto de alguns módulos separados por menus. 
A tela de cadastro de cliente é composta de campos para inserção de dados, 
como nome do cliente, e-mail, nacionalidade, estado, observações, telefone 
para contato e opções de recebimento de notícias de promoções. Vamos ao 
passo a passo.
1. Criação do projeto Java no Eclipse. Clique no menu File > New > Java 
Project. Uma janela será aberta para que você insira o nome do pro-
jeto; depois, clique em Finish. Veja, na Figura 9, a janela de criação do 
projeto em Java e a estrutura do projeto já na janela Project Explorer.
Figura 9. Criando o projeto.
Interface gráfica14
2. Criação do pacote. Agora vamos criar um pacote para a organização 
da nossa interface (tela de cadastro de clientes). Nesse caso, o pacote 
(br.sagah.tela) é criado na pasta src (source) do projeto. A Figura 10 
ilustra o processo.
Figura 10. Criando o pacote.
3. Classe principal. Agora, vamos criar a classe principal. Na progra-
mação Java, uma das classes contém o método principal (main()). 
O método main indica que a classe é a classe inicial para a execução 
do projeto. Para isso, clique no pacote br.sagah.tela e, depois, em 
File > New > Class. Por padrão de desenvolvimento, o nome da classe 
é criado com a letra inicialmaiúscula e com os objetos em minúsculo. 
A Figura 11 ilustra a tela de criação da classe. Lembre-se de clicar na 
caixa de verificação do método main() conforme a imagem. 
Interface gráfica 15
Figura 11. Criando a classe principal.
4. Criação da classe da tela. Com o intuito de separar a classe que gera 
a tela da classe principal, vamos criar uma nova classe, mas sem o 
método main(). Clique no pacote br.sagah.tela e, depois, em File 
> New > Class, conforme a Figura 11. Porém, dê um novo nome para a 
classe, Tela. A Figura 12 apresenta a classe criada e o código da classe 
com um método construtor. O método construtor é executado com a 
classe instanciada. 
Interface gráfica16
Figura 12. Método construtor da tela do usuário.
Até esse ponto, o projeto consta com um pacote (br.sagah.tela) e duas 
classes: a classe principal e a classe da tela gráfica do usuário. Desse modo, 
o próximo passo é utilizar o método initialize(). Esse método será res-
ponsável pelos códigos dos elementos de tela.
5. Criação da janela. Use a classe JFrame para criar a janela que agrupará 
os elementos de tela. A Figura 13 ilustra o código para a criação da janela. 
Interface gráfica 17
Figura 13. Código de criação da janela.
Além do objeto, alguns métodos foram utilizados para determinar algumas 
características da janela. Veja a seguir.
 � setSize(largura, altura): especifica a altura e a largura da janela. 
Os valores são em pixels.
 � setLocationRelativeTo(null): especifica a localização da janela. 
Nesse exemplo, o parâmetro null é determinado no centro da tela.
 � setVisible(true): permite a visualização da tela do usuário. O pa-
râmetro true ativa a visualização.
 � setBackground(cor): determina a cor de fundo do objeto. A cor pode 
ser estabelecida com a classe Color. 
 � setDefaultCloseOperation(JFrame.EXIT _ ON _ CLOSE): habilita 
o botão fechar da janela criada pelo JFrame. 
6. Criação do painel. Os gerenciadores de leiaute servem para organizar 
os elementos de tela dentro da janela. Existem diversos gerenciadores 
de leiaute, como FlowLayout, GridLayout, Box Layout e BorderLayout. 
Embora sejam utilizados para organizar os dados dentro, por exem-
plo, de um JFrame ou JPanel, aqui, vamos construir a tela de cadastro 
e cliente sem um gerenciador de leiaute. Nesse cenário, o método 
setLayout recebe parâmetro null, ou seja, não há qualquer tipo 
de gerenciamento, e os objetos são posicionados na tela de forma 
Interface gráfica18
absoluta, utilizando valores de X (distância da borda esquerda da tela) 
e Y (distância da borda superior da tela). Vamos criar, então, um painel 
por meio da classe JPanel() para a organização dos elementos de 
tela, mas sem gerenciador; apenas adicionando o painel. O código está 
descrito na Figura 14.
Figura 14. Criação do painel.
Observe o uso do método setLayout(null). Esse comando não ativa 
qualquer tipo de gerenciador de leiaute específico, sendo necessário o po-
sicionamento dos elementos com o método setBound(x, y, w, h).
7. Criação dos códigos dos objetos que serão utilizados na tela. Todos os 
labels (rótulos) indicativos da tela foram criados com a classe JLabel 
e com algumas características, como alteração da cor do texto e do 
tamanho de fonte, além do seu posicionamento. A Figura 15 mostra a 
criação do título da tela. Observe o uso dos métodos setForeground(), 
que define a cor do texto, e setFont(), que permite especificar o tipo, o 
tamanho e o estilo de fonte. Posteriormente, o método adiciona o objeto 
ao painel criado com JPanel(). Ainda, o uso do método setBounds(x, 
y, w, h) especifica o posicionamento do elemento na tela (x, y) e a 
área de visualização do conteúdo do elemento (w, referente à largura, 
e h, à altura). Os demais elementos da tela criados com o JLabel 
seguem os mesmos princípios. 
Interface gráfica 19
Figura 15. Aplicação do JLabel.
Por sua vez, os elementos de entrada de texto foram criados utilizando a 
classe JTextField(). Os elementos nome, e-mail e telefone do cliente foram 
criados utilizando a classe JTextField(), exemplificado com o código da 
caixa de entrada do nome do cliente (Figura 16).
Figura 16. Aplicação do JTextField.
Interface gráfica20
O campo estado foi criado por meio da classe JComboBox. Essa classe 
permite que listas sejam exibidas dentro de um elemento de tela. Veja, 
na Figura 17, a criação de um array de nomes (strings) e a inserção do array 
como parâmetro do objeto JComboBox. 
Figura 17. Aplicação do JComoBox.
Por sua vez, os campos de opções são conhecidos como botões de rádio 
(JRadioButton). A construção desse elemento na interface de usuário é 
possível pelo uso da classe JRadioButton. Entretanto, para que as op-
ções sejam únicas, pode-se, por exemplo, criar um grupo de botões de rádio 
(ButtonGroup) e adicionar os botões a esse elemento conforme o código da 
Figura 18. Veja que o objeto bg não é acionado ao painel, mas, sim, os objetos 
de botões de rádio.
Interface gráfica 21
Figura 18. Aplicação do JRadioButton com ButtonGroup.
Já as linhas podem ser adicionadas à tela visando à organização visual 
dos elementos. O código a seguir adiciona uma linha na tela. Cria-se a linha 
com a classe JSeparator.
JSeparator separator = new JSeparator();
separator.setForeground(Color.WHITE);
separator.setBounds(10, 196, 525, 8);
panel.add(separator);
Além disso, podem ser criadas caixas de observação, que são elementos 
de tela que permitem que o usuário insira informações adicionais. Esse objeto 
é criado via classe JTextArea. Veja, na Figura 19, o código de criação.
Interface gráfica22
Figura 19. Aplicação do JTextArea.
Inserir uma imagem na tela do usuário é possível pela combinação entre 
a classe ImageIcon e uma classe JLabel, sendo que o parâmetro pas-
sado para o objeto JLabel é o ícone especificado com o método construtor 
ImageIcon. Nesse exemplo, a caixa de texto e a imagem têm as mesmas 
dimensões (largura, altura) (Figura 20). 
Figura 20. Inserindo uma imagem.
Interface gráfica 23
Uma observação importante é o Path associado à imagem. Nesse exemplo, 
foi utilizado o caminho do recurso do próprio projeto, resgatado pelo método 
getResource("/br/sagah/tela/foto2.jpg") e passado como parâmetro.
Ainda, caixas de verificação podem ser utilizadas na interface do usuário 
como um campo de aceite para que alguma ação possa ser realizada. A Figura 
21 ilustra o código-fonte que cria esses elementos de tela. O exemplo ilustra 
o uso da classe JCheckBox.
Figura 21. Aplicando uma caixa de verificação.
Por sua vez, botões são criados com a classe JButton. A Figura 22 ilustra 
a criação dos botões na tela. 
Interface gráfica24
Figura 22. Criando botões.
Por fim, menus são criados para organizar as ações de uma tela. No desen-
volvimento Java, a classe JMenu cria a área de opções de menu, que são criadas 
por JMenuItem. Esses objetos são dispostos na barra de menu (JMenuBar). 
A Figura 23 ilustra a codificação da criação do menu na interface do usuário.
Figura 23. Criando o menu.
Interface gráfica 25
Note a sequência de criação do menu. Cria-se a barra de menu (JMenuBar) 
e, em seguida, a área de menu (JMenu), adicionando à barra de menu. Depois, 
você cria as opções de menu por meio do JMenuItem e adiciona os itens à 
área de menu. Como resultado, tem-se a interface do usuário ilustrada na 
Figura 24.
Figura 24. Interface do usuário.
Neste capítulo, vimos que uma interface gráfica pode ser desenvolvida 
utilizando as classes dos pacotes SWING (javax.swing), pois essas classes 
são compatíveis com todas as plataformas, como a classe JButton, para a 
criação de objetos tipo botão simples. As classes do pacote javax.swing 
têm métodos e alguns parâmetros que são utilizados, por exemplo, para 
alterar características do objeto, com o método setSize(x,y), que determina 
dimensões de um painel ou de uma janela. 
Logo, a linguagem utilizada no desenvolvimento de uma interface do 
usuário é considerada uma linguagem de front-end, embora seja a mesmautilizada para a codificação de regra de negócio, conhecida como linguagem 
back-end. A linguagem de front-end é aplicada aos objetos associados à 
camada de apresentação em um modelo de três camadas.
Interface gráfica26
Em resumo, a organização e a navegação são necessárias no desenvolvi-
mento de uma interface com o objetivo de criar boas experiências ao usuário 
em relação à visualização das informações, mas também visando a uma melhor 
distribuição dos pesos de importância para cada objeto de tela. No caso da 
linguagem Java, isso é feito utilizando os objetos gerados pelas classes do 
pacote javax.swing.
Referências
FINEGAN, E.; LIGUORI, R. OCA Java SE 8: guia de estudos para o exame 1Z0-808. Porto 
Alegre: Bookman, 2015.
HORSTMANN, C. Conceitos de computação com Java: compatível com Java 5 & 6. 5. ed. 
Porto Alegre: Bookman, 2009.
LECESSI, R. Functional interfaces in Java: fundamentals and examples. New York: 
Apress, 2019.
LUCKOW, D. H.; MELO, A. A. Programação Java para a web: aprenda a desenvolver uma 
aplicação financeira pessoal com as ferramentas mais modernas da plataforma Java. 
2. ed. São Paulo: Novatec, 2015.
SAMOYLOV, N.; SANAULLA, M. Java 11 cookbook: a definitive guide to learning the key 
concepts of modern application development. 2nd ed. Birmingham: Packt Publishing, 
2018. 
SCHILDT, H. Java para iniciantes: crie, compile e execute programas Java rapidamente. 
6. ed. Porto Alegre: Bookman, 2015.
Interface gráfica 27
Dica do professor
A orientação a objetos é um paradigma de programação, e Java 
é uma linguagem orientada a objetos. Para iniciantes, compreender a estrutura hierárquica dos 
pacotes e das classes no Oracle Help 
pode ser uma tarefa difícil, pois o princípio de herança está estritamente aplicado à estrutura. O 
Oracle Help Center é a documentação oficial 
da linguagem Java.
Nesta Dica do Professor, você vai ver como o princípio de orientação 
a objetos conhecido como herança é aplicado às classes do pacote javax.swing. 
 
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
 
 
https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/b3ac823e8e3100ee9be61111a6a1dc2e
Exercícios
1) As classes em Java são distribuídas de forma hierárquica e relacionadas entre si pelo 
princípio de herança. A classe raiz é a classe Object do pacote java.lang, e essas classes são 
agrupadas em pacotes.
Com relação à distribuição das classes em uma estrutura hierárquica, leia as afirmações a 
seguir.
I. A classe JLabel consegue acessar métodos do pacote JComponent, como o método 
setFont() que determina características de fonte. 
II. O método setBackground() do pacote java.JComponent pode ser acessado pela classe 
Frame via herança.
III. A interface Accessible permite que a classe JFrame acesse métodos do pacote 
javax.JComponent.
IV. O método setSize() pode ser acessado via objeto JFrame, pois pertence a uma classe 
superior à classe JFrame, conhecida como Component. 
Qual é a alternativa correta?
A) As afirmativas I e II estão corretas.
B) As afirmativas II e IV estão corretas.
C) As afirmativas I, II e III estão corretas.
D) As afirmativas III e IV estão corretas.
E) As afirmativas I, II e IV estão corretas.
Uma interface gráfica é formada por elementos de controle como caixa de texto, botões de 
seleção, botão simples, etc. Esses elementos são posicionados na tela por diversos meios, de 
forma absoluta ou pelo uso de gerenciadores.
Agora, considere as seguintes asserções:
I. Quando um container tem mais de um componente, é preciso especificar como esses 
componentes devem ser dispostos na apresentação. Em Java, um objeto que implemente a 
interface LayoutManager é responsável por esse gerenciamento de disposição. 
2) 
PORQUE
II. O uso de um gerenciador especifica o tamanho e a posição dos componentes na janela 
gráfica do programa, ou seja, determina onde os componentes irão ficar na interface gráfica 
do usuário, dispostos dentro do container, como Frame, Panel e Window.
Assinale a alternativa que apresenta a análise correta das asserções.
A) As asserções I e II são proposições verdadeiras, mas a II não justifica a I.
B) As asserções I e II são proposições verdadeiras, e a II justifica a I. 
C) A asserção I é uma proposição verdadeira; a II, falsa. 
D) A asserção I é uma proposição falsa; a II, verdadeira. 
E) As asserções I e II são proposições falsas.
3) As linguagens de front-end são definidas como linguagens usadas no desenvolvimento de 
interface gráfica de usuários. As classes dos pacotes java.awt e javax.swing são utilizadas no 
desenvolvimento de uma interface.
Considerando o contexto, marque V (verdadeiro) ou F (falso).
( ) No modelo de três camadas, a camada um, apresentação, é onde linguagens de front-end, 
como Java, são usadas na criação dos elementos de interface. 
( ) Diferentemente da linguagem de front-end, a de back-end é usada para implementar as 
regras de negócio, sendo aplicada na camada dois do modelo de três camadas.
( ) Um projeto utilizando a linguagem Java faz uso da linguagem tanto para criação de 
interfaces gráficas do usuário como no desenvolvimento das rotinas de validação das regras 
de negócio. 
( ) As classes do pacote javax.swing são utilizadas para a criação de elementos de tela como 
um botão simples. Essas classes implementam os princípios de herança.
Assinale a alternativa que apresenta a sequência correta.
A) V, V, F, V. 
B) F, F, F, V.
C) V, V, F, F. 
D) V, F, F, V.
E) V, V, V, V.
4) Um bom layout favorece a experiência de usuário, incluindo a usabilidade da aplicação. Em 
containers como JFrame e JPanel há alguns gerenciadores que facilitam o desenvolvimento 
de um layout. Esse gerenciador de layout divide um container em uma grade com linhas e 
colunas, onde os componentes são colocados a partir da parte superior esquerda e assim 
sucessivamente.
Assinale a alternativa que representa o gerenciador de layout descrito.
A) BorderLayout.
B) GridLayout.
C) FlowLayout.
D) CardLayout.
E) BoxLayout.
5) A linguagem Java tem alguns pacotes que agrupam classes utilizadas na construção de uma 
interface gráfica do usuário. Os elementos de uma interface são criados por classes como 
JLabel, JButton e JTextField, que geram objetos como rótulos, botões e campo de entrada 
de texto.
Logo, a API __________ foi adicionada à plataforma na versão do Java SE 1.2, com o objetivo 
de melhorar recursos e componentes para criar interfaces gráficas no Java. O Swing é 
compatível com o __________, sendo possível usar componentes e recursos das duas 
__________ no mesmo projeto. Uma __________ gráfica criada pelo Swing é única em qualquer 
sistema operacional que a executa, seja Windows, Linux ou qualquer outro, permanecendo o 
mesmo layout e estilos. Grande parte da complexidade da biblioteca Swing foi pelo fato da 
preocupação de __________ que a AWT não tinha.
Assinale a alternativa que complete as lacunas.
A) Swing; AWT; bibliotecas; interface; portabilidade.
B) AWT; Swing; API; interface; portabilidade.
C) AWT; BorderLayout; API; tela; compatibilidade.
D) Swing; BorderLayout; bibliotecas; tela; compatibilidade.
E) AWT; Swing; API; interface; portabilidade.
Na prática
A linguagem Java permite que o desenvolvedor crie interfaces gráficas de usuário. Essa linguagem 
de programação é orientada a objetos e usada tanto para front-end quanto para back-end em 
aplicativos Java para desktop. Durante o desenvolvimento de uma interface gráfica, problemas 
ocorrem, sendo assim, em algumas situações, a linguagem não oferece um suporte direto a ajustes 
dos objetos para atender às necessidades do layout de tela.
Neste Na Prática, você vai ver como um profissional de tecnologia 
da informação (TI) encontrou a solução para o problema do ajuste automático de imagens a serem 
apresentadas na interface gráfica proposta para uma escola. 
 
Aponte a câmera para o 
código e acesse o link do 
conteúdo ou cliqueno 
código para acessar.
https://statics-marketplace.plataforma.grupoa.education/sagah/e45b6fd3-8e05-47ce-bbb0-40446772a43a/30b421ef-a4a2-46c4-8209-33cc519f5fc5.jpg
Saiba +
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor:
Entendendo e aplicando herança em Java
Este texto aborda a programação orientada a objetos no atendimento a diversos princípios. A 
herança é um dos princípios básicos, sendo muito aplicada na hierarquia de classes da linguagem 
Java. Confira.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
11 dicas de ferramentas que vão te ajudar a criar um layout 
excelente
Este site lista 11 ferramentas úteis para o desenvolvimento do layout de uma interface gráfica do 
usuário. Veja a seguir.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Java para iniciantes: crie, compile e execute programas Java 
rapidamente
O Capítulo 16 desta obra é um ótimo reforço para o entendimento em tela da linguagem Java. Leia.
Conteúdo interativo disponível na plataforma de ensino!
https://www.devmedia.com.br/entendendo-e-aplicando-heranca-em-java/24544?v=347252168
https://www.iset.com.br/blog/ferramentas-ajudar-criar-layout/?v=230918602

Continue navegando