SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
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!

Weitere ähnliche Inhalte

Was ist angesagt?

Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - JavaArthur Emanuel
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigoMauro Pereira
 
Java orientação a objetos (interfaces)
Java   orientação a objetos (interfaces)Java   orientação a objetos (interfaces)
Java orientação a objetos (interfaces)Armando Daniel
 
HERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVAHERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVAAparicio Junior
 
Java: Manipulação de Arquivos
Java:  Manipulação  de ArquivosJava:  Manipulação  de Arquivos
Java: Manipulação de ArquivosArthur Emanuel
 
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)Gercélia Ramos
 
06 Modelagem de banco de dados: Modelo Lógico
06  Modelagem de banco de dados: Modelo Lógico06  Modelagem de banco de dados: Modelo Lógico
06 Modelagem de banco de dados: Modelo LógicoCentro Paula Souza
 
Tutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchTutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchDaniel Brandão
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Pacc UAB
 

Was ist angesagt? (20)

Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Acessando o MySql com o Python
Acessando o MySql com o PythonAcessando o MySql com o Python
Acessando o MySql com o Python
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
 
Java orientação a objetos (interfaces)
Java   orientação a objetos (interfaces)Java   orientação a objetos (interfaces)
Java orientação a objetos (interfaces)
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
 
POO - 13 - Arrays em Java
POO - 13 - Arrays em JavaPOO - 13 - Arrays em Java
POO - 13 - Arrays em Java
 
HERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVAHERANÇA - Programação Orientada a Objetos JAVA
HERANÇA - Programação Orientada a Objetos JAVA
 
1ª lista de_algoritmos
1ª lista de_algoritmos1ª lista de_algoritmos
1ª lista de_algoritmos
 
Exercicios - Java Swing
Exercicios - Java SwingExercicios - Java Swing
Exercicios - Java Swing
 
Linguagem Java
Linguagem JavaLinguagem Java
Linguagem Java
 
Exercicios java básico
Exercicios java básicoExercicios java básico
Exercicios java básico
 
Algoritmos - Matrizes
Algoritmos - MatrizesAlgoritmos - Matrizes
Algoritmos - Matrizes
 
Java: Manipulação de Arquivos
Java:  Manipulação  de ArquivosJava:  Manipulação  de Arquivos
Java: Manipulação de Arquivos
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
 
Algoritmos - Vetores
Algoritmos - VetoresAlgoritmos - Vetores
Algoritmos - Vetores
 
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)
 
06 Modelagem de banco de dados: Modelo Lógico
06  Modelagem de banco de dados: Modelo Lógico06  Modelagem de banco de dados: Modelo Lógico
06 Modelagem de banco de dados: Modelo Lógico
 
Tutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchTutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL Workbench
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1
 

Andere mochten auch

Introdução à teoria da interactividade
Introdução à teoria da interactividadeIntrodução à teoria da interactividade
Introdução à teoria da interactividadeJoão Sá
 
Teoria da interactividade
Teoria da interactividadeTeoria da interactividade
Teoria da interactividadeCarlos Barbosa
 
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árioFabio Moura Pereira
 
Introdução à teoria da interatividade
Introdução à teoria da interatividadeIntrodução à teoria da interatividade
Introdução à teoria da interatividadeLuís
 

Andere mochten auch (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
 

Ähnlich wie Java GUI e componentes Swing (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
 
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
 
Programação "Estruturada" com Java
Programação "Estruturada" com JavaProgramação "Estruturada" com Java
Programação "Estruturada" com Java
 

Mehr von 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
 

Kürzlich hochgeladen

atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfLuizaAbaAba
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfRavenaSales1
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxLusGlissonGud
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasSocorro Machado
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAHELENO FAVACHO
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 

Kürzlich hochgeladen (20)

atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdf
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 

Java GUI e componentes Swing

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