Interface grafica

4,836 views

Published on

Published in: Education, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,836
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
230
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Interface grafica

  1. 1. Interface gráfica em JavaTécnicas de ProgramaçãoProf. Iális CavalcanteEngenharia da Computação2011.1
  2. 2. Introdução GUI – graphical user interface ◦ Interface gráfica com o usuário Fornece ao programa “aparência” e comportamentos “diferenciados”: ◦ Nível básico de familiaridade com o programa; ◦ Reduz tempo de aprendizado; ◦ Aumenta habilidade de uso produtivo do programa.
  3. 3. Introdução Componentes GUI em um browser: Menu Barra de menus Botão Campo de texto Barrade status
  4. 4. Introdução Componentes GUI – interação através do mouse, teclado, etc. Exemplos: ◦ JLabel – área exibível para textos não-editáveis ou ícones; ◦ JTextField – área para exibição e inserção de dados através do teclado; ◦ JButton – área que aciona um evento após clique do mouse; JLabelJTextField JButton
  5. 5. Introdução JCheckBox – componente com dois estados: selecionado ou não- selecionado; JComboBox – lista de itens em que apenas um é selecionado, por mouse ou teclado; JLista – lista de itens em que mais de um podem ser selecionados; JPanel – contêiner em que os componentes podem ser colocados.JCheckBox JComboBox JList JPanel
  6. 6. Visão geral do Swing Pacote javax.swing ◦ Escritos, manipulados e exibidos completamente em Java (componentes Java puro); Pacote java.awt ◦ Estão diretamente associados à GUI da plataforma local; ◦ Exibidos de forma diferente, dependendo da plataforma; java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent
  7. 7. Caixas de Diálogo No código AloMundo.java: ◦ JOptionPane.showMessageDialog( ... ) – return void ◦ Parâmetros: Component parentComponent Object message String title (sobrecarga 1) int messageType (sobrecarga 1) Icon icon (sobrecarga 2) ◦ Exemplo: JOptionPane.showMessageDialog(null,"Alô, mundo!","Primeiro programa com interface gráfica",JOptionPane.DEFAULT_OPTION);
  8. 8. Caixas de Diálogopackage aula.igrafica;import javax.swing.JFrame;import javax.swing.JOptionPane;public class AloMundo extends JFrame { public AloMundo(){ JOptionPane.showMessageDialog(null,"Alô, mundo!","Primeiro programa com interface gráfica",JOptionPane.DEFAULT_OPTION); } public static void main(String args[]){ AloMundo aplicacao = new AloMundo(); aplicacao.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}
  9. 9. Caixas de Diálogo◦ JOptionPane.showConfirmDialog( ... ) – return int◦ Parâmetros: Component parentComponent Object message String title (sobrecarga 1) int optionType (sobrecarga 1) int messageType (sobrecarga 2) Icon icon (sobrecarga 3)◦ Exemplo: JOptionPane.showConfirmDialog(null, "Alô, mundo!", "Primeiro programa com interface gráfica", JOptionPane.CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
  10. 10. Caixas de Diálogo optionType ◦ YES_NO_OPTION, YES_NO_CANCEL_OPTION, OK_CANCEL_OPTION messageType ◦ ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE, PLAIN_MESSAGE
  11. 11. Caixas de Diálogo No código Calculadora.java: JOptionPane.showInputDialog( ... ) – return String ◦ Parâmetros: Inicial Sobrecarga 1 Sobrecarga 2Component parentComponent Component parentComponent Component parentComponentObject message Object message Object messageObject initialSelectedValue String title String title int messageType int messageType Icon icon Object[] selectionValue Object initialSelectedValue ◦ Exemplo: JOptionPane.showInputDialog(null, "Qual o primeiro numero inteiro da operação?", "Tá indo bem!", JOptionPane.QUESTION_MESSAGE);
  12. 12. Caixas de Diálogo ◦ JOptionPane.showOptionDialog( ... ) – return int ◦ Parâmetros: Component parentComponent Object message String title int optionType int messageType Icon icon Object[] options Object initialValue ◦ Exemplo: String[] opcoes = {“Confirmar”, “Cancelar”, “Fechar”}; JOptionPane.showOptionDialog(this, "mensagem", "titulo", JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, icon, opcoes, opcoes[0]);
  13. 13. Layout do Componente Aplicado em componentes containeres FlowLayout – objetos seguidos no container BorderLayout – objetos dispostos nas bordas e centro do container ◦ CENTER, NORTH, SOUTH, EAST, WEST GridLayout – objetos dispostos como uma tabela (colunas e linhas)
  14. 14. Layout do Componente Qual o resultado do código? FlowLayout layout = new FlowLayout(); Container container = getContentPane(); container.setLayout( layout ); container.add(leftButton); container.add(centerButton); container.add(leftButton); setSize(300,75); setVisible(true);
  15. 15. Layout do Componente Qual o resultado do código? BorderLayout layout = new BorderLayout(); Container container = getContentPane(); container.setLayout( layout ); container.add(leftButton, BorderLayout.WEST); container.add(myList, BorderLayout.CENTER); container.add(otherButton, BorderLayout.SOUTH); setSize(300,75); setVisible(true);
  16. 16. Layout do Componente Qual o resultado do código? GridLayout layout = new GridLayout(2,2); Container container = getContentPane(); container.setLayout( layout ); container.add(leftButton); container.add(myButton); container.add(otherButton); setSize(300,150); setVisible(true);
  17. 17. JFrame no NetBeans Novo -> JFrame public Construtor() { initComponents(); } public void initComponents() { (...) } Área de Desenho e de Código.
  18. 18. Tratamento de Eventos Mecanismo: ◦ Origem do evento ◦ Objeto evento ◦ “Ouvinte” (listener) do evento Origem: componente GUI que interage (botão) Objeto: encapsula as informações sobre o evento. Ouvinte: recebe as informações do evento e responde este mesmo evento.
  19. 19. Tratamento de EventosTarefas do programador:◦ Registrar o ouvinte para o componente GUI;◦ Implementar o método de tratamento de eventos.Pacotes:◦ java.awt.event◦ javax.swing.eventTeclar Enter irá chamar o métodoactionPerformed.
  20. 20. Tratamento de Eventos TextFieldHandler handler = new TextFieldHandler; textField1.addActionListener ( handler );origem objeto listener private class TextFieldHandler implements ActionListener { // processa eventos public void actionPerformed ( ActionEvent event ){ if (event.getSource() == textField1) objeto evento String saida = “TextField1 clicado!”; } }
  21. 21. Implementação 1 Observe o uso das classes java.lang.Math e java.util.ArrayListdouble res1 = Math.random();System.out.println("Valor 1: "+res1); Valor entre 0 e 1double res2 = Math.random()*100;System.out.println("Valor 2: "+res2); Valor entre 0 e 100int res3 = (int) Math.random()*100;System.out.println("Valor 3: "+res3); Mau uso do castint res4 = (int) (Math.random()*100);System.out.println("Valor 4: "+res4); Uso correto do castint[] res5 = new int[20];ArrayList array = new ArrayList();for(int j = 0; j < res5.length; j++){ res5[j] = (int) (Math.random()*100); array.add(res5[j]); Valor do endereço de memória}System.out.println("Valor 5: "+res5); Valores de todos os elementosSystem.out.println("Valor 6: "+array);
  22. 22. Implementação 1 Pesquise sobre o uso da classe Math e implemente um programa Java (com interface gráfica) que tenha a entrada de dois números inteiros, numA e numB, e escreva a saída em valor numérico real: ◦ Método floor aplicado em numA/numB; ◦ Método ceil aplicado em numB/numA; ◦ Método pow aplicado a numAnumB e numBnumA; ◦ Método tan aplicado a tangente de numA, numB, numA/numB e numB/numA.
  23. 23. Implementação 2 Associe as classes Scanner e ArrayList para a implementação do seguinte programa: ◦ Leia um vetor de 10 (dez) valores inteiros com a classe Scanner; ◦ Multiplique cada valor lido a um número aleatório que varie de 0 a 10000; ◦ Insira os 4 (quatro) maiores valores do novo vetor em um objeto da classe ArrayList; ◦ Escreva na saída o valor deste novo objeto.
  24. 24. Implementação 3 Jogo de azar: “Craps” ◦ o jogador lança dois dados (cada um com seis faces, com 1, 2, 3, 4, 5 e 6 pontos respectivamente); ◦ calcula-se a soma das faces expostas: se soma = 7 ou 11 -> jogador venceu; se soma = 2, 3 ou 12 -> jogador perdeu; senão, soma torna-se a “pontuação” do jogador. ◦ os dados são lançados novamente: soma = pontuação -> jogador venceu; soma = 7 -> jogador perdeu; senão, lança os dados novamente. Projetar interface para este programa!

×