SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Interface gráfica em Java
Técnicas de Programação
Prof. Iális Cavalcante
Engenharia da Computação
2011.1
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.
Introdução
             Componentes GUI em um browser:

 Menu                                         Barra de
                                               menus


  Botão                                       Campo
                                              de texto




 Barra
de status
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;


                                                                JLabel

JTextField



                             JButton
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
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
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);
Caixas de Diálogo
package 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);
    }
}
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);
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
Caixas de Diálogo
             No código Calculadora.java:
             JOptionPane.showInputDialog( ... ) – return String
              ◦ Parâmetros:
            Inicial                        Sobrecarga 1                  Sobrecarga 2
Component parentComponent Component parentComponent Component parentComponent
Object message                    Object message                Object message
Object 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);
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]);
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)
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);
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);
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);
JFrame no NetBeans
 Novo -> JFrame
 public Construtor() {
    initComponents();
 }
 public void initComponents() { (...) }
 Área de Desenho e de Código.
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.
Tratamento de Eventos
Tarefas do programador:
◦ Registrar o ouvinte para o componente GUI;
◦ Implementar o método de tratamento de
  eventos.
Pacotes:
◦ java.awt.event
◦ javax.swing.event
Teclar Enter irá chamar o método
actionPerformed.
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!”;
             }
         }
Implementação 1
    Observe o uso das classes java.lang.Math e java.util.ArrayList
double res1 = Math.random();
System.out.println("Valor 1: "+res1);
                                                   Valor entre 0 e 1
double res2 = Math.random()*100;
System.out.println("Valor 2: "+res2);              Valor entre 0 e 100
int res3 = (int) Math.random()*100;
System.out.println("Valor 3: "+res3);              Mau uso do cast
int res4 = (int) (Math.random()*100);
System.out.println("Valor 4: "+res4);               Uso correto do cast
int[] 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 elementos
System.out.println("Valor 6: "+array);
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.
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.
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!

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de Computadores
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas Condicionais
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
 
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com JavaExercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Ficheiros em JAVA
Ficheiros em JAVAFicheiros em JAVA
Ficheiros em JAVA
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
 
Estruturas de Dados - Tabelas de Espalhamento (Hash Table)
Estruturas de Dados - Tabelas de Espalhamento (Hash Table)Estruturas de Dados - Tabelas de Espalhamento (Hash Table)
Estruturas de Dados - Tabelas de Espalhamento (Hash Table)
 
Estrutura de Dados Apoio (Tabela Hash)
Estrutura de Dados Apoio (Tabela Hash)Estrutura de Dados Apoio (Tabela Hash)
Estrutura de Dados Apoio (Tabela Hash)
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Lógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de SeleçãoLógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de Seleção
 
Bases De Dados
Bases De DadosBases De Dados
Bases De Dados
 
POO - 19 - Elementos Estáticos
POO - 19 - Elementos EstáticosPOO - 19 - Elementos Estáticos
POO - 19 - Elementos Estáticos
 
Logica programacao python-slides
Logica programacao python-slidesLogica programacao python-slides
Logica programacao python-slides
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)
 
Java básico - Módulo 05 - Estruturas de Repetição
Java  básico - Módulo 05 - Estruturas de RepetiçãoJava  básico - Módulo 05 - Estruturas de Repetição
Java básico - Módulo 05 - Estruturas de Repetição
 
Aula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoAula 3 - Lógica de Programação
Aula 3 - Lógica de Programação
 

Destaque (7)

Trabalho gui
Trabalho guiTrabalho gui
Trabalho gui
 
GUI Aplicações Gráficas
GUI Aplicações Gráficas GUI Aplicações Gráficas
GUI Aplicações Gráficas
 
Introdução à teoria da interactividade
Introdução à teoria da interactividadeIntrodução à teoria da interactividade
Introdução à teoria da interactividade
 
Interfaces gráficas de usuario
Interfaces gráficas de usuarioInterfaces gráficas de usuario
Interfaces gráficas de usuario
 
Teoria da interactividade
Teoria da interactividadeTeoria da interactividade
Teoria da interactividade
 
Aula Interface Gráfica do Usuário
Aula Interface Gráfica do UsuárioAula Interface Gráfica do Usuário
Aula Interface Gráfica do Usuário
 
Introdução à teoria da interatividade
Introdução à teoria da interatividadeIntrodução à teoria da interatividade
Introdução à teoria da interatividade
 

Semelhante a Interface grafica

Programando em python interfaces graficas com tk
Programando em python   interfaces graficas com tkProgramando em python   interfaces graficas com tk
Programando em python interfaces graficas com tk
samuelthiago
 
Java interface gráfica swing
Java   interface gráfica swingJava   interface gráfica swing
Java interface gráfica swing
Armando Daniel
 
Apostila:Curso de java II
Apostila:Curso de java II  Apostila:Curso de java II
Apostila:Curso de java II
Verônica Veiga
 

Semelhante a Interface grafica (20)

Programando em python interfaces graficas com tk
Programando em python   interfaces graficas com tkProgramando em python   interfaces graficas com tk
Programando em python interfaces graficas com tk
 
Java10
Java10Java10
Java10
 
Java: Introducao ao Swing
Java: Introducao ao SwingJava: Introducao ao Swing
Java: Introducao ao Swing
 
JQuery
JQuery JQuery
JQuery
 
Java interface gráfica swing
Java   interface gráfica swingJava   interface gráfica swing
Java interface gráfica swing
 
Apostila:Curso de java II
Apostila:Curso de java II  Apostila:Curso de java II
Apostila:Curso de java II
 
CURSO JAVA 02
CURSO JAVA 02CURSO JAVA 02
CURSO JAVA 02
 
Interfaces Gráficas em Java Parte 2
Interfaces Gráficas em Java Parte 2Interfaces Gráficas em Java Parte 2
Interfaces Gráficas em Java Parte 2
 
Java swingcomponentes
Java swingcomponentesJava swingcomponentes
Java swingcomponentes
 
Java script aula 05 - funções
Java script   aula 05 - funçõesJava script   aula 05 - funções
Java script aula 05 - funções
 
Apresentação-Resumo sobre o Java Swing.
Apresentação-Resumo sobre o Java Swing.Apresentação-Resumo sobre o Java Swing.
Apresentação-Resumo sobre o Java Swing.
 
Java swing
Java swingJava swing
Java swing
 
Repetições e vetores
Repetições e vetoresRepetições e vetores
Repetições e vetores
 
Java Desktop
Java DesktopJava Desktop
Java Desktop
 
Java AWT
Java AWTJava AWT
Java AWT
 
Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)
 
Minicurso kotlin UTFPR
Minicurso kotlin UTFPR Minicurso kotlin UTFPR
Minicurso kotlin UTFPR
 
Minicurso kotlin no desenvolvimento mobile - UTFPR
Minicurso kotlin no desenvolvimento mobile - UTFPRMinicurso kotlin no desenvolvimento mobile - UTFPR
Minicurso kotlin no desenvolvimento mobile - UTFPR
 
Interface Gráfica.ppt
Interface Gráfica.pptInterface Gráfica.ppt
Interface Gráfica.ppt
 
Javascript
JavascriptJavascript
Javascript
 

Mais de Ialis Cavalcante (15)

Assembleia com os Discentes - SACEC
Assembleia com os Discentes - SACECAssembleia com os Discentes - SACEC
Assembleia com os Discentes - SACEC
 
Minicurso Ercemapi 2011
Minicurso Ercemapi 2011Minicurso Ercemapi 2011
Minicurso Ercemapi 2011
 
Unidade7 1
Unidade7 1Unidade7 1
Unidade7 1
 
Programacao logica
Programacao logicaProgramacao logica
Programacao logica
 
05 poo-ii
05   poo-ii05   poo-ii
05 poo-ii
 
Unidade06
Unidade06Unidade06
Unidade06
 
Introducao ao greenfoot
Introducao ao greenfootIntroducao ao greenfoot
Introducao ao greenfoot
 
Dinamicas
DinamicasDinamicas
Dinamicas
 
Unidade05
Unidade05Unidade05
Unidade05
 
Unidade04
Unidade04Unidade04
Unidade04
 
Unidade03
Unidade03Unidade03
Unidade03
 
Unidade02
Unidade02Unidade02
Unidade02
 
Técnicas de PDI com Java - Ercemapi 2009
Técnicas de PDI com Java - Ercemapi 2009Técnicas de PDI com Java - Ercemapi 2009
Técnicas de PDI com Java - Ercemapi 2009
 
CCT 23Maio2009 Sobral
CCT 23Maio2009 SobralCCT 23Maio2009 Sobral
CCT 23Maio2009 Sobral
 
Introducao ao LaTeX
Introducao ao LaTeXIntroducao ao LaTeX
Introducao ao LaTeX
 

Último

ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
azulassessoria9
 

Último (20)

Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
Falando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdFalando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introd
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
Novena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João EudesNovena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João Eudes
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
Slides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exerciciosSlides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exercicios
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União Europeia
 
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfMESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
 

Interface grafica

  • 1. Interface gráfica em Java Técnicas de Programação Prof. Iális Cavalcante Engenharia da Computação 2011.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 Barra de 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; JLabel JTextField 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álogo package 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 2 Component parentComponent Component parentComponent Component parentComponent Object message Object message Object message Object 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 Eventos Tarefas do programador: ◦ Registrar o ouvinte para o componente GUI; ◦ Implementar o método de tratamento de eventos. Pacotes: ◦ java.awt.event ◦ javax.swing.event Teclar Enter irá chamar o método actionPerformed.
  • 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.ArrayList double res1 = Math.random(); System.out.println("Valor 1: "+res1); Valor entre 0 e 1 double res2 = Math.random()*100; System.out.println("Valor 2: "+res2); Valor entre 0 e 100 int res3 = (int) Math.random()*100; System.out.println("Valor 3: "+res3); Mau uso do cast int res4 = (int) (Math.random()*100); System.out.println("Valor 4: "+res4); Uso correto do cast int[] 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 elementos System.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!