técnicas de programação - bb.cruzeirodosulvirtual.com.br · aplicação de interface gráfica. 5...

30
Técnicas de Programação

Upload: vongoc

Post on 09-Nov-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

Técnicas de Programação

Page 2: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão
Page 3: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

Material Teórico

Responsável pelo Conteúdo:Profª Esp. Margarete Eliane da Silva Almendro

Revisão Técnica:Prof. Me. Douglas Almendro

Revisão Textual:Prof.a Me. Selma Aparecida Cesarin

Aplicação de Interface Gráfica

Page 4: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão
Page 5: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

5

• 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.

Aplicação de Interface Gráfica

Page 6: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

6

Unidade: Aplicação de Interface Gráfica

Contextualização

A utilização da interface gráfica ou ambiente visual é uma forma de interagirmos com os recursos dos sistemas. Por trás dos elementos, existe uma vasta ou até mesma o mínimo de instruções de computadores que irão executar determinada tarefa.

Sem essas facilidades, os usuários deveriam possuir uma habilidade igual à de um programador para que as tarefas ou eventos fossem executados.

Graças aos componentes de interação, os códigos ficam por trás da interface, oferecendo maior praticidade ao usuário.

Page 7: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

7

Aplicação de Interface Gráfi ca

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.

Como desenvolver interfaces gráficas em Java?

Bem, temos alguns aspectos interessantes sobre a interface gráfica em Java. Para a criação dela, temos:

AWT

(Abstract Window Toolkit)

· Foi a primeira API para interfaces gráficas a surgir no Java; · Usa o modo nativo do sistema operacional; · Resolução de 72 dpi; · java.awt.*.

Figura Estrutura do AWT.

Component Button

Canvas

Checkbox

Choice

Label

List

Scrollbar

TextComponent

Container

Panel Window

Dialog Frame

TextArea TextField

Page 8: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

8

Unidade: Aplicação de Interface Gráfica

Como podemos ver, esta estrutura oferece:

• Pacotes com diversos componentes gráficos;

• Componentes que têm aparência dependente de plataforma;

• Métodos obsoletos.

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.

Page 9: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

9

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

Na opção categorias, vamos escolher Java.

• Projetos, aplicação Java

• E Clicar no botão próximo. Deverá aparecer esta janela:

Page 10: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

10

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!Di cas:

• 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.

• Já podemos clicar no botão finalizar.

Sua janela deverá ficar parecida com esta:

Vamos observar melhor a guia de projetos:

Podemos observar que a nossa ferramenta já cria uma estrutura de diretórios para este projeto, “o que facilita bastante a organização dele”.

Page 11: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

11

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:

• Vamos seguir os caminhos acima e terminar clicando em FormJFrame.

A seguinte tela deverá aparecer:

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.

Page 12: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

12

Unidade: Aplicação de Interface Gráfica

• Agora, já podemos clicar no botão finalizar.

A próxima etapa já deverá aparecer na nossa janela a ser customizada.

À 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.

Page 13: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

13

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.

Vamos, então, clicar neste painel e colocá-lo em nossa janela.

A partir de agora, poderemos mudar a cor, borda etc.

Page 14: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

14

Unidade: Aplicação de Interface Gráfica

Vamos mudar a cor deste painel?

Então, selecione a paleta de propriedades e escolha a opção background.

• Escolha a cor desejada e clique em ok.

Vamos agora selecionar um componente para colocarmos neste container. O escolhido para nosso aplicativo é o componente JLabel.

Page 15: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

15

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.

Mudamos a propriedade foreground para amarelo.

Page 16: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

16

Unidade: Aplicação de Interface Gráfica

Agora, na propriedade font, mudaremos para fonte arial e tamanho 36.

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:

AtençãoTela x = new Tela(); // “estamos criando um objeto e dando vida para ele”X.show(true); // este comando estará fazendo com que a janela apareça

Page 17: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

17

• Próximo passo: executar o projeto.

Para isso, basta clicar no botão de play verde, como mostra a figura a seguir.

O resultado deverá ser:

Como já vimos os passos de como criar uma interface, vamos criar uma interface como a identificada a seguir.

Ou seja, acrescentar dois botões e escrever as palavras Acende e Apaga.

Page 18: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

18

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.

Cada evento está associado a um objeto (componente da GUI);

• O evento gera outro objeto (ActionEvent);

• O evento é passado para um listener (escutador de eventos);

Para criar um listener, devemos implementar uma interface listener (java.awt.event.*)

Para facilitar, montaremos nossa interface para que quando o usuário clicar em um botão, ele execute alguma sequência de comandos já definidos em um algoritmo.

Page 19: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

19

Primeiramente, devemos selecionar o botão que receberá o evento e escolher o evento por meio da guia de eventos.

Neste caso, escolheremos mouseCliked e no lugar de nenhum estaremos selecionando jButton1MouseClicked.

Logo na sequência, aparecerá a parte programável de nossa interface.

Page 20: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

20

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”);

Vamos alterar o código a seguir. O que irá acontecer?

Nesse caso, além de mostrar a mensagem, ele também irá alterar o texto do jLabel 1 que criamos na nossa interface.

Page 21: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

21

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 é!

Page 22: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

22

Unidade: Aplicação de Interface Gráfica

Agora, temos o problema do algoritmo, não é? Fique calmo(a)!

No Java, temos a opção de efetuar cálculos usando funções da biblioteca nativa do Java, chamada Math. Vamos aplicá-la?

No botão do Seno, escolheremos o evento de MouseClicked e, em seguida, a seguinte programação:

• Lembre-se de que a programação a ser digitada é apenas:

double seno;seno=Double.parseDouble(jTextField1.getText());//estamos transformando o valor digitado em um número//do tipo double.JOptionPane.showMessageDialog(null,”O seno de:“+ jTextField1.getText()+ “ é “+Math.sin(seno));//Math.sin() é uma função para calcular o seno

Vamos agora para o Coseno.

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

Page 23: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

23

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á!

Já a programação de cada botão seria modificada para:

Page 24: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

24

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!

Page 25: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

25

Material Complementar

Para aprofundar seus conhecimentos, consulte:

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.

Page 26: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

26

Unidade: Aplicação de Interface Gráfica

Referências

ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da programação de computadores: algoritmos, Pascal, C/C e Java. 2.ed. São Paulo: Pearson. 2010. (e-book).

CHRISTOS, P. UMESH, V. Algoritmos. Porto Alegre: Grupo A, 2011. (e-book).

EDELWEISS, N.; GALANTE, R. Estruturas de dados. Porto Alegre: Grupo A, 2011. (e-book)

FORBELLONE, A. L. V.; EBERSPACHER, H. F. Lógica de Programação: A Construção de Algoritmos e Estrutura de Dados. 3.ed. São Paulo: Makron Books do Brasil, 2005.

GOODRICH M. T., TAMASSIA R. Estruturas de dados e algoritmos em Java. Porto Alegre: Grupo A, 2011. (e-book)

HORSTMANN, C. Conceitos de computação com Java. 5.ed. Porto Alegre: Grupo A, 2009. (e-book)

MANZANO, J. A. N. G. Algoritmos: Lógica para Desenvolvimento de Programação. 20.ed. São Paulo: Eriça, 2007.

VILARIM, G. O. Algoritmos: Programação para Iniciantes. Rio de Janeiro: Ciência Moderna, 2004.

Page 27: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão

27

Anotações

Page 28: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão
Page 29: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão
Page 30: Técnicas de Programação - bb.cruzeirodosulvirtual.com.br · Aplicação de Interface Gráfica. 5 • Aplicação de Interface Gráfica · Nesta Unidade, o aluno terá uma visão