Interface grafica

  • 4,087 views
Uploaded on

 

More in: Education , Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
4,087
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
195
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Interface gráfica em JavaTécnicas de ProgramaçãoProf. Iális CavalcanteEngenharia da Computação2011.1
  • 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. Introdução Componentes GUI em um browser: Menu Barra de menus Botão Campo de texto Barrade status
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. JFrame no NetBeans Novo -> JFrame public Construtor() { initComponents(); } public void initComponents() { (...) } Área de Desenho e de Código.
  • 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. 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. 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. 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. 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. 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. 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!