Livro V
Livro V
Livro V
Programação
Material Teórico
Aplicação de Interface Gráfica
Revisão Técnica:
Prof. Me. Douglas Almendro
Revisão Textual:
Prof. Me. Selma Aparecida Cesarin
a
Aplicação de Interface Gráfica
·· Nesta Unidade, o aluno terá uma visão do que vem a ser interface gráfica e aprenderá
a criar um programa com os recursos gráficos de linguagem de programação.
Olá, alunos(as)!
Hoje, veremos alguns assuntos introdutórios na nossa Disciplina e aproveito para apresentar
alguns conceitos que utilizaremos na estrutura de todas as nossas Unidades.
Lembramos a você a importância de realizar todas as atividades propostas dentro do prazo
estabelecido para cada Unidade. Dessa forma, você evitará que o conteúdo se acumule e que
você tenha problemas ao final do semestre.
Uma última recomendação: caso tenha problemas para acessar algum item da disciplina
ou dúvidas com relação ao conteúdo, não deixe de entrar em contato com seu professor tutor
pelo botão mensagens ou nos fóruns.
5
Unidade: Aplicação de Interface Gráfica
Contextualização
6
Aplicação de Interface Gráfica
Nesta aula, aprenderemos a montar uma interface gráfica mais amigável e, para tanto,
utilizaremos a versão 8.0 do NetBeans (mas qualquer outra versão do NetBeans também
poderá ser utilizada).
Vamos falar um pouco sobre as aplicações gráficas:
• Há muito tempo era de difícil criação, principalmente em outras linguagens: Clipper,
C++, C, Pascal etc.;
• As linguagens atuais facilitam o seu desenvolvimento, principalmente o Java e o .NET;
• Existe uma infinidade de funcionalidades disponíveis nas bibliotecas de classes Java,
destinadas a promover a interação entre usuário e máquina de forma gráfica.
Component Button
Canvas
Container
Checkbox
Choice
List
TextComponent
TextArea TextField
7
Unidade: Aplicação de Interface Gráfica
SWING
√ A partir do Java 1.2;
√ Mais rica que a AWT;
√ Componentes 100% Java;
√ Executado em qualquer S.O. mantendo o visual, fonte, cores e geometria (look-and-feel);
√ Resolução de 300 dpi;
√ javax.swing.*;
√ Hierarquia usada.
• JComponent;
• Super classe do pacote javax.swing;
• JFrame, JLabel, JList, JMenuBar, JPanel, JButton, JMenu, JTextArea são alguns
exemplos de classes direta ou indiretamente herdadas;
• Extensão do pacote AWT;
• Programação mais simples.
AWT+SWING
∙ União perfeita;
∙ Aproveitamento das características de ambos os pacotes.
Tipos de aplicações
√ Standalone
∙ Aplicativos criados para rodar via SO.
√ Applets
∙ Aplicativos criados para rodar via Browser;
∙ O Browser é quem controla seu ciclo de vida (início, fim etc.);
∙ Geralmente ocupam parte da janela do browser, mas podem abrir janelas extras;
∙ Possuem restrições de segurança.
8
Vamos colocar a mão na massa?
Agora, começaremos a criação de um novo projeto. Vamos aos passos principais:
• Menu file ou arquivos
9
Unidade: Aplicação de Interface Gráfica
Até aqui, só criamos um projeto que poderá conter diversos arquivos de apoio para o
nosso projeto.
Importante!
Dicas:
• Saber o nome do projeto. Pode ser qualquer nome:
• Sugestão: o nome deve ter algum sentido para o projeto que esteja criando;
• Onde estará salvando este projeto “diretório pasta…”;
• Deixar habilitado o item criar classe principal.
50% dos desenvolvedores iniciais comentem o erro de não saber o nome muito
menos onde salvaram seu projeto.
Podemos observar que a nossa ferramenta já cria uma estrutura de diretórios para este
projeto, “o que facilita bastante a organização dele”.
10
O próximo passo será criar a janela na qual criaremos a interface gráfica. Para isto, vamos
clicar com o botão direito do mouse sobre a pasta de pacote:
Onde há a opção nome da Classe, podemos colocar o nome da tela que deverá ser criada.
Com as demais opções, não precisamos nos preocupar, pois em nosso projeto já definimos o
local de criação.
11
Unidade: Aplicação de Interface Gráfica
À nossa direita, temos a paleta de controles e ou componentes que poderão ser inseridos
em nossa janela. E no centro, nossa interface, ainda sem atrativo algum.
Vamos começar a moldar nossa janela, mas, primeiro, vamos definir o gerenciador de
layout que iremos trabalhar. Para tanto, devemos clicar com o botão direito do mouse sobre
a nossa janela.
Podemos observar que existem diversos gerenciadores de layout que podemos escolher,
neste caso, para facilitar a criação da janela ou design livre ou layout nulo. Os demais são mais
limitados com relação à criação de layouts, mas você pode se aprofundar mais na comunidade
GUJ na internet, nas quais existe um fórum somente sobre Java.
12
Vamos criar um container dentro de nossa janela e para isto vamos selecionar na paleta
contêineres Swing, painel.
O conceito é o mesmo de um container de navio e deveremos criar um para em seguida
acomodar os itens de nosso layout.
13
Unidade: Aplicação de Interface Gráfica
14
Veja que a parte cinza apenas representa as coordenadas do nosso JLabel. Vamos agora
mudar este JLabel, que na verdade representa uma etiqueta fixa.
Mudamos a propriedade text dele para FIRE e vamos mudar também o tamanho, a cor e a
fonte deste componente.
15
Unidade: Aplicação de Interface Gráfica
Pronto! Temos uma interface gráfica pronta; porém, sem interação inteligente do usuário.
• Vamos fazer esta aplicação “rodar” ou simplesmente executar!
Para isso, lembra-se do início da criação de nosso projeto? Pois bem! Agora deveremos
informar para a classe principal o que ela deverá fazer: “mostrar a nossa interface gráfica
criada agora”.
Vamos clicar no arquivo criado pelo projeto. Deverá aparecer uma tela com uma programação
simples; porém, deveremos colocar o seguinte código: o nome da nossa janela de interface
gráfica para o qual, no caso deste exemplo, foi dado o nome de Tela:
Tela x = new Tela(); // “estamos criando um objeto e dando vida para ele”
Atenção X.show(true); // este comando estará fazendo com que a janela apareça
16
• Próximo passo: executar o projeto.
Para isso, basta clicar no botão de play verde, como mostra a figura a seguir.
Como já vimos os passos de como criar uma interface, vamos criar uma interface como a
identificada a seguir.
17
Unidade: Aplicação de Interface Gráfica
Até aqui, nada que seja uma novidade além do que aprendemos até agora. Porém, temos
de mostrar que nossa interface tem dinamismo “interação” com o usuário.
Então, agora vamos aprender um pouco sobre eventos.
Em uma aplicação com interface, existe a necessidade de capturar eventos na janela para
que uma ação seja executada (clicar, abrir, passar o mouse, fechar etc.), tudo isto para que
exista uma interação do usuário com a nossa GUI.
18
Primeiramente, devemos selecionar o botão que receberá o evento e escolher o evento por
meio da guia de eventos.
19
Unidade: Aplicação de Interface Gráfica
Onde está escrito “// TODO add your handling code here:” iremos digitar o seguinte código:
• JOptionPane.showMessageDialog(null, “Fogo Aceso”);
Perceba que aparece uma linha sublinhada de vermelho e uma lâmpada ao lado. Isto indica
que temos um erro de compilação ou sintaxe da linguagem. Este erro é simples de resolver:
basta clicarmos na lâmpada e escolher a opção de importar o javax.swing.JOptionPane.
Este erro acontece devido ao fato de que para usarmos o JOptionPane ele faz parte do
pacote swing do Java e devemos importá-lo para a nossa interface.
Repita para o outro botão e coloque outra mensagem: JOptionPane.showMessageDialog(null,
“Fogo Apagado”);
Nesse caso, além de mostrar a mensagem, ele também irá alterar o texto do jLabel 1 que
criamos na nossa interface.
20
Vamos criar agora uma interface simples para calcular o seno coseno tangente de um
ângulo. Como sugestão, veja a interface a seguir.
Nesta interface, o que temos de diferente seria a caixa de texto para que o usuário possa
digitar o ângulo e depois escolher se prefere exibir uma das opções a seguir.
Note que qualquer usuário em “sã ignorância” não entenderia esta palavra de jTextField, não é?
Então, para a arrumarmos na propriedade textr do nosso jTextField1 eliminaremos essa palavra.
Pronto!
Agora é só programarmos os botões para calcular o Seno, Coseno e Tangente.
Simples, não? Pois é!
21
Unidade: Aplicação de Interface Gráfica
double coseno;
coseno=Double.parseDouble(jTextField1.getText());
//estamos transformando o valor digitado em um número
//do tipo double.
JOptionPane.showMessageDialog(null,”O Coseno de: “+
jTextField1.getText()+ “ é “+Math.cos(coseno));
//Math.cos() é uma função para calcular o coseno
22
Vamos, por último, para a Tangente.
double tangente;
tangente=Double.parseDouble(jTextField1.getText());
//estamos transformando o valor digitado em um número
//do tipo double.
JOptionPane.showMessageDialog(null,”A Tangente de: “+
jTextField1.getText()+ “ é “+Math.tan(tangente));
//Math.tan() é uma função para calcular a tangente
Tome muito cuidado se por acaso for copiar e colar o código, pois, geralmente, ocorrem
erros nas aspas, haja vista que, em alguns casos, gera o que chamamos de aspas francesas. Se
isso acontecer, basta substituí-las por aspas normais novamente.
Poderíamos melhorar esta interface fazendo com que os valores se apresentem em uma
nova caixa de texto, não é?
Vamos lá!
23
Unidade: Aplicação de Interface Gráfica
double seno;
seno=Double.parseDouble(jTextField1.getText());
jTextField2.setText(String.valueOf(Math.sin(seno)));
//neste caso a variável numérica não pode ser exibida diretamente
//na caixa de texto portanto colocamos o String.valueOf!
double coseno;
coseno=Double.parseDouble(jTextField1.getText());
jTextField2.setText(String.valueOf(Math.cos(coseno)));
//neste caso a variável numérica não pode ser exibida diretamente
//na caixa de texto portanto colocamos o String.valueOf!
double tangente;
tangente=Double.parseDouble(jTextField1.getText());
jTextField2.setText(String.valueOf(Math.tan(tangente)));
//neste caso a variável numérica não pode ser exibida diretamente
//na caixa de texto, portanto, colocamos o String.valueOf!
24
Material Complementar
Vídeos:
Interface Gráfica em Java - Aula 01
https://youtu.be/ZMlySbYed8Q
Livros:
DEITEL, H. M. e DEITEL, P. J. Livro Estudo Dirigido de Algoritmos. São Paulo:
Editora Pearson, 2012.
________. Java: Como Programar. 4º Edição. Porto Alegre: Bookman Editora, 2003.
25
Unidade: Aplicação de Interface Gráfica
Referências
EDELWEISS, N.; GALANTE, R. Estruturas de dados. Porto Alegre: Grupo A, 2011. (e-book)
26
Anotações
27