SlideShare ist ein Scribd-Unternehmen logo
1 von 82
Downloaden Sie, um offline zu lesen
INTERFACES GRÁFICAS
SWING – PARTE 1
Prof.ª M.ª Elaine Cecília Gatto
INTRODUÇÃO
INTRODUÇÃO
• SWING:
• Coleção de classes e interfaces
• Rico conjunto de componentes visuais:
• Botões de ação
• Campos de texto
• Barras de rolagem
• Caixas de seleção
• Árvores
• Tabelas
• Menus
INTRODUÇÃO
• Evento
• É um recurso Java
• É o mecanismo pelo qual o programa é notificado sobre
iterações do usuário
• AWT
• Abstract Window Toolkit
• Sistema de interface gráfica original do Java
• Dependente de plataforma
INTRODUÇÃO
• AWT
• Componentes pesados
• Interface gráfica usável, porém limitada
• Problemas com o uso de janelas nativas específicas da
plataforma (ou pares nativos):
• Um componente pode aparecer e agir de forma
diferente em cada sistema operacional que executar;
• Aparência fixa sem possibilidade de alteração;
• Componentes pesados são sempre opacos;
• etc.;
INTRODUÇÃO
• SWING
• 1997
• Java Foundation Classes = JFC
• Java 1.1: biblioteca separada
• Java 1.2: integrado à biblioteca
• Recursos chave:
• Componentes leves
• Aparência adaptável
INTRODUÇÃO
• SWING
• Componentes leves:
• O componente é escrito em Java
• Usa a janela fornecida por um predecessor pesado
• Não tem um par nativo
• Eficientes e Flexíveis
• Formas geométricas diversas
• Componentes leves são transformados em pares
específicos da plataforma, mas a aparência é
determinada pelo swing
INTRODUÇÃO
• SWING
• Cada componente swing é gerado por código Java e não
por pares específicos de plataforma
• Aparência e lógica são separadas
• Aparência:
• Permite alterar a maneira como o componente é
gerado sem afetar outros aspectos
• Conecta uma nova aparência a qualquer componente
sem criar efeitos colaterais no código
• Metal e Motif
INTRODUÇÃO
• SWING
• Aparência Metal:
• Disponível para todos
• Independente de plataforma
• Aparência padrão
• MVC:
• Model-View-Control
• Arquitetura de componentes clássica
• Permite a aparência adaptável
INTRODUÇÃO
• SWING
• MVC:
• Model: informações de estado associadas ao
componente
• View: determina como o componente será exibido na tela
• Control: determina como o componente reagirá ao
usuário
• Exemplo: quando alguém clicar em uma caixa de
seleção, o CONTROLADOR reagirá alterando o
MODELO para refletir a escolha, resultando na
atualização da VISUALIZAÇÃO
INTRODUÇÃO
• SWING
• Arquitetura modelo-delegação de UI:
• Arquitetura modelo separável
• Swing usa MVC mas não a versão clássica
• Swing usa uma versão modificada de MVC que
combina view e control na mesma entidade lógica
(delegação UI)
• Swing é fácil de usar e NÃO substitui o AWT
• AWT ainda faz parte do JAVA e SWING se baseia nele
COMPONENTES E
CONTEINERES
COMPONENTES E CONTEINERES
• Dois importantes itens
• Todos os contêineres também são componentes
• Componentes:
• É um controle visual independente
• Botão de ação, controle deslizante, etc.
• Contêineres:
• Contém um grupo de componentes
• Tipo especial de componente
• Projetado para conter outros componentes
COMPONENTES E CONTEINERES
• Toda interface gráfica terá pelo menos UM CONTEINER
• Contêineres podem conter outros contêineres
• Hierarquia de contenção: Deve haver um contêiner de nível
superior
COMPONENTES E CONTEINERES
• Componentes:
• Componentes swing derivam de Jcomponent
• JComponent:
• Fornece funcionalidade comum a todos os
componentes
• Herda as classes Container e Component de AWT
• Pacote: javax.swing (representação dos
componentes)
• Um componente Swing se baseia e é compatível com
um componente do AWT
COMPONENTES E CONTEINERES
JApplet JButton JCheckBox JCheckBoxMenuItem
JColoChooser JComboBox JComponent JDesktopPane
JDialog JEditorPane JFileChooser JFormattedTextField
JFrame JInternaFrame JLabel JLayer
JLayeredPane JList JMenu JMenuBar
JMenuItem JOptionPane JPanel JPasswordField
JPopupMenu JProgressBar JRadioButton JRadioButtonMenuItem
JRootPane JScrollBar JScrollPane JSeparator
JSlider JSpinner JSplitPane JTabbedPane
JTable JTextArea JTextField JTextPane
JToggleButton JToolBar JToolTip JTree
JViewPort JWindows
COMPONENTES E CONTEINERES
• Contêineres de nível superior:
• JFrame, JApplet, JWindow e JDialog
• Não herdam de JComponent
• Herdam de Component e Container de AWT
• São componentes pesados
• Estão no topo de uma hierarquia de contenção
• Não podem estar contidos em outros contêineres
• JFrame é o mais usado para aplicativos
PAINÉIS DO CONTEINER
PAINÉIS DO CONTEINER
• Cada contêiner de nível superior define um conjunto de
painéis
• JROOTPANE:
• Topo da hierarquia
• Container leve
• Gerencia outros painéis
• Ajuda a gerenciar a barra de menus
• Painel de vidro, painel de conteúdo e painel em
camadas: painéis que compõem o painel raiz
PAINÉIS DO CONTEINER
• Painel de vidro:
• Painel de nível superior
• Fica acima de todos os outros painéis
• Cobre totalmente os outros painéis
• Permite o gerenciamento de eventos do mouse que afetam o
contêiner inteiro ou a geração de algo acima de outro
componente
PAINÉIS DO CONTEINER
• Painel em CAMADAS:
• Permite que os componentes recebam valores de
profundidade
• O valor de profundidade determina como os componentes
são sobrepostos
• Contem o painel de conteúdo e a barra de menus que é
opcional
PAINÉIS DO CONTEINER
• Painel de conteúdo:
• Painel que a sua aplicação interagirá
• É a este painel que serão adicionados componentes
visuais
• Contem os componentes com os quais o usuário interage
• Muito do que acontece com esses painéis é em segundo plano e
não teremos de usar diretamente
GERENCIADORES DE
LAYOUT
GERENCIADORES DE LAYOUT
• Controla a posição dos componentes dentro de um
contêiner
• Determina o local dos controles dentro de um contêiner
• Todos os gerenciadores de layout são instancias de
uma classe que implementa a interface
LAYOUTMANAGER
GERENCIADORES DE LAYOUT
• FlowLayout:
• Layout simples
• Posiciona os componentes da esquerda para a direita e
de cima para baixo
• BorderLayout:
• Layout padrão para um painel de conteúdo
• Posiciona os componentes no centro ou nas bordas do
contêiner
GERENCIADORES DE LAYOUT
• GridLayout:
• Dispõe os componentes dentro de uma grade
• GridBagLayout:
• Dispõe os componentes de tamanhos diferentes dentro
de uma grade flexível
GERENCIADORES DE LAYOUT
• BoxLayout:
• Dispõe os componentes vertical ou horizontalmente
dentro de uma caixa
• SpringLayout:
• Dispõe os componentes de acordo com um conjunto de
restrições
EXEMPLO
EXEMPLO
• JFrame: contêiner de nível superior
• JLabel: componente que cria um rótulo e exibe informação.
É um componente passivo
EXEMPLO
• Programas swing são acionados por eventos
• O evento gerado é passado para o aplicativo com uma chamada
a um tratador de eventos que o aplicativo define
• O tratador é executado na THREAD de despacho do evento
fornecida pelo Swing e não na THREAD principal do aplicativo
• Tratadores de eventos são chamados em uma THREAD que não
foi criada por eles
EXEMPLO
• Duas THREADs diferentes não podem atualizar o mesmo
componente ao mesmo tempo.
• Todos os componentes de GUI devem ser criados e atualizados
a partir da THREAD de despacho do evento E NÃO da THREAD
PRINCIPAL do aplicativo
• MAIN é executado na thread principal e NÃO pode instanciar
diretamente um objeto GUI.
• Main deve criar um objeto RUNNABLE para ser executado na
THREAD de despacho do evento e fazer esse objeto criar a GUI.
EXEMPLO
• Swing Utilities
• Dois métodos para criar thread no despacho de evento
• invokeLater(Runnable objeto): retorna
imediatamente
• invokeAndWait(Runnable objeto): espera até o
objeto.run() retornar
TRATAMENTO DE
EVENTOS
TRATAMENTO DE EVENTOS
• Modelo de delegação de eventos:
• Mecanismo de tratamento de eventos
• Uma fonte gera um evento e o envia para um ou mais
ouvintes
• O ouvinte apenas espera até receber um evento
• Ao receber o evento, o ouvinte processa o evento e
retorna
TRATAMENTO DE EVENTOS
• A lógica que processa eventos fica claramente separada da
lógica da interface de usuário que os gera
• Um elemento da interface de usuário pode DELEGAR o
processamento de um evento para um código separado
• Os ouvintes devem SE registrar em uma fonte para receber
a notificação de um evento
EVENTOS
EVENTOS
• O evento é o objeto que descreve uma mudança de estado
em uma fonte
• Java.ultil.EventObject: super classe de todos os eventos
• Java.awt.evento e javax.swing.event: classes de eventos
FONTES DE EVENTOS
FONTES DE EVENTOS
• É um objeto que gera um evento.
• Quando um evento é gerado, a fonte deve envia-lo para
todos os ouvintes registrados.
• addTipoListener(TipoListener tl): método usado pelos
ouvintes para se registrarem em uma fonte
• Cada tipo de evento tem o seu próprio método de registro.
FONTES DE EVENTOS
• addKeyListener(): método que registra um ouvinte que
recebe eventos de pressionamento de teclas no teclado
• addMouseMotionListener(): método que registra um ouvinte
de movimento do mouse
• Quando ocorre um evento, todos os ouvintes registrados
são notificados.
FONTES DE EVENTOS
• removeTipoListener(TipoListener tl): método fornecido pela
FONTE para que um ouvinte possa cancelar interesse em
um tipo específico de evento
• removeKeyListener(): remove um ouvinte de
pressionamento de teclas
• A fonte que gera os eventos deve fornecer os métodos para
adicionar e remover ouvintes
OUVINTES DE EVENTOS
OUVINTES DE EVENTOS
• Um OUVINTE é um objeto que é notificado quando um
evento ocorre.
• Dois requisitos:
• 1) precisa ter registro em uma ou mais fontes para ser
notificado sobre um tipo de evento
• 2) deve implementar métodos para o recebimento e
processamento desse evento
OUVINTES DE EVENTOS
• Um OUVINTE é um objeto que é notificado quando em
evento ocorre.
• Dois requisitos:
• 1) precisa ter registro em uma ou mais fontes para ser
notificado sobre um tipo de evento
• 2) deve implementar métodos para o recebimento e
processamento desse evento
OUVINTES DE EVENTOS
• Os métodos que recebem e processam eventos são
definidos em um conjunto de interfaces.
• ActionListener:
• Interface que define um método que recebe notificação
quando uma ação ocorre
• Qualquer objeto pode receber e processar esse evento
OUVINTES DE EVENTOS
• Um tratador de eventos deve executar sua tarefa
rapidamente e retornar.
• Quando uma operação demorada é necessária, uma
THREAD separada é criada para esse fim.
• Uma operação longa não deve ser executada por um
tratador de eventos pois isso retardaria a aplicação inteira.
CLASSES DE EVENTOS E
INTERFACES DE
OUVINTES
CLASSES DE OUVINTES
• EventObject:
• superclasse de todos os eventos
• faz parte de java.útil
• AWTEvent:
• subclasse de EventObject.
• superclasse de todos os eventos em AWT
JAVA.AWT.EVENT
Classe de
Eventos
Geração Ouvinte de
eventos
ActionEvent Quando uma ação
ocorre dentro de um
controle
ActionListener
Adjustment
Event
Quando uma barra de
rolagem é manipulada
AdjustmentEvent
FocusEvent Quando um
componente ganha ou
perde foco
FocusEvent
JAVA.AWT.EVENT
Classe de
Eventos
Geração Ouvinte de
eventos
ItemEvent Quando um item é
selecionado
ItemListener
KeyEvent Quando uma entrada
do teclado é recebida
KeyListener
MouseEvent Arrastar, mover, clicar,
pressionar, soltar.
Quando o mouse
entra ou sai de um
componente
MouseListener e
MouseMotionList
ener
JAVA.AWT.EVENT
Classe de
Eventos
Geração Ouvinte de
eventos
Mouse
WhellEvent
Quando a roda do
mouse é movida
Mouse
WhellEvent
WindowEvent Quando um janela é
ativada, fechada,
desativada,
deiconificada,
iconificada, aberta ou
abandonada
WindowListener
JAVA.SWING.EVENT
Classe de
Eventos
Geração Ouvinte de
eventos
AncestorEvent Quando o predecessor
de um componente
tiver sido adicionado,
movido ou removido
AncestorListener
ChangeEvent Quando um
componente muda seu
estado
ChangeListener
JAVA.SWING.EVENT
Classe de
Eventos
Geração Ouvinte de
eventos
Hyperlink
Event
Quando um hyperlink
é acessado
HyperlinkEvent
ListDataEvent Quando o conteúdo
de uma lista muda
ListDataListener
ListSelection
Event
Quando a seleção em
uma lista muda
ListSelection
Event
MenuEvent Quando ocorre uma
seleção no menu
MenuListener
JAVA.SWING.EVENT
Classe de
Eventos
Geração Ouvinte de
eventos
Table
ModelEvent
Quando o modelo
tabela muda
Tabel
ModelEvent
Tree
Expansion
Event
Quando uma árvore é
expandida ou
recolhida
Tree
ExpansionEvent
JAVA.SWING.EVENT
Classe de
Eventos
Geração Ouvinte de
eventos
Tree
ModelEvent
Quando um modelo
de árvore é
expandida ou
recolhida
Tree
ModelListner
Tree
SelectionEvent
Quando um nó de
uma árvore é
selecionado
Tree
SelecionListener
CLASSES
ADAPTADORAS
CLASSES ADAPTADORAS
• Fornecem uma implementação vazia dos métodos das interfaces
de ouvintes de eventos
• São uteis para receber e processar apenas alguns dos eventos
associados a uma interface de eventos específica
• Uma nova classe pode ser definida para agir como um ouvinte
de eventos, estendendo uma das classes adaptadoras e
implementando somente os métodos que forem interessantes
CLASSES ADAPTADORAS
• Isso permite diminuir a quantidade de métodos vazios
desnecessários
• Nem todas as interfaces tem uma classe adaptadora
correspondente
• Normalmente existem classes adaptadoras para aqueles
ouvintes que tem mais de dois métodos
CLASSES ADAPTADORAS
• MouseMotionListener:
• mouseDragged()
• mouseMoved()
• MouseMotionAdapter fornece implementações vazias destes
dois métodos
• Se o interesse estiver apenas na ação de arrastar o mouse,
então:
• Estender MouseMotionAdapter
• Implementar mouseDragged()
CLASSES ADAPTADORAS
Classe adaptadora Implementa
FocusAdapter FocusListener
KeyAdapter KeyListener
MouseAdapter MouseListener
MouseMotionAdapter MouseMotionListener
MouseInputAdapter MouseListener e
MouseMotionListener
WindowsAdapter WindowsListener
JBUTTON
BOTÃO DE AÇÃO
BOTÃO DE AÇÃO
• É um dos controles mais simples e mais usados
• É uma instancia de JBUTTON
• JBUTTON herda a classe abstrata ABSTRACTBUTTON
• ABSTRACTBUTTON define a funcionalidade comum a todos os
botões
• Botões podem conter: texto, imagens ou ambos
BOTÃO DE AÇÃO
• Quando um botão de ação é pressionado, ele gera um
ACTIONEVENT
• addActionListener(ActionListener AL):
• adiciona ouvinte de ação
• AL: objeto que receberá as notificações do evento
• removeActionListener(ActionListener AL):
• remove ouvinte de ação
• AL: objeto que receberá as notificações do evento
BOTÃO DE AÇÃO
• Sintaxe de JBUTTON:
• JButton(String msg)
• msg: texto que será exibido no botão
• Exemplo: JButton jb1 = new JButton(“Botão1");
BOTÃO DE AÇÃO
• ActionListener defie um método:
• actionPerformed(ActionEvent ae)
• Este método sempre é chamado quando um botão é
pressionado. TRATADOR DE EVENTOS
BOTÃO DE AÇÃO
• Comando de ação:
• getActionCommand()
• Identifica qual botão foi pressionado
• Obtém-se o comando de ação chamando este método
BOTÃO DE AÇÃO
• Sempre que um botão é pressionado, ele gera um evento de
ação e todos os ouvintes registrados são notificados com
uma chamada ao método ActionPERFORMED()
• O objeto ACTIONEVENT que representa o evento de botão
é passado como parâmetro. O evento que ocorreu é
passado via ACTIONEVENT
• O comando de ação associado ao botão que gerou o evento
é obtido com uma chamada a GETACTIONCOMMAND()
BOTÃO DE AÇÃO
• Exemplo no netbeans
JTEXTFIELD
CAMPO DE TEXTO
JTEXTFIELD
• Permite que o usuário insira uma linha de texto
• Herda da classe abstrata JTEXTCOMPONENT
• JTEXTCOMPONENT:
• Superclasse de todos os componentes de texto
• Obtém entradas do usuário baseadas em texto
JTEXTFIELD
• Sintaxe
JTextField(int cols)
• Cols:
• largura do campo de texto em colunas
• Tamanho físico do campo de texto na tela
• Uma string maior que o número de colunas pode ser
inserida
JTEXTFIELD
• ActionEvent é gerado quando a tecla ENTER é pressionada:
• addActionListener()
• removeActionListener()
• actionPerformed()
• getText(): obtém a string exibida atualmente no campo de texto
JTEXTFIELD
• JTEXTFIELD também possui uma string de comando de
ação
• O comando de ação é o conteúdo atual do campo de texto
• setActionCommand(String cmd): permite configurar um
comando de ação de acordo com sua necessidade
JTEXTFIELD
• Exemplo: JTextField jt1 = new JTextField(20);
• EXEMPLOS NO NETBEANS (3 e 4)
CLASSES INTERNAS ANONIMAS
• Tratamento de eventos:
• Abordagem simples e direta
• MAIN implementa a interface de ouvinte
• Todos os eventos são enviados para uma instancia
dessa classe
• MAIS FORMAS DE TRATAR EVENTOS
CLASSES INTERNAS ANONIMAS
• Classes de ouvinte separadas:
• Classes diferentes tratariam eventos distintos e ficariam
separadas da MAIN
• Implementar ouvintes com classes internas anônimas
CLASSES INTERNAS ANONIMAS
• CLASSE INTERNA:
• É uma classe não estática declarada dentro de outra
classe
• É uma classe aninhada
• Uma classe interna não existe de forma independente da
classe que a contem
• Uma classe interna tem acesso a todas as variáveis e
métodos de sua classe externa e pode referencia-los
diretamente
CLASSES INTERNAS ANONIMAS
• CLASSE INTERNAANONIMA:
• É uma classe interna que não tem um nome
• A instancia da classe é gerada dinamicamente quando
necessário
• Facilitam a implementação de alguns tratadores de
eventos
• Vantagem: o componente que chama os métodos da
classe já é conhecido
CLASSES INTERNAS ANONIMAS
• CLASSE INTERNAANONIMA:
jb1.addActionListener (
new ActionListener () {
public void actionPerformed(ActionEvent ae){
//tratamento das ações
}
}
);
CLASSES INTERNAS ANONIMAS
• CLASSE INTERNAANONIMA:
jb1.addActionListener (
new ActionListener () {
public void actionPerformed(ActionEvent ae){
//tratamento das ações
}
}
);
Não há necessidade de chamar GETACTIONCOMMAND()
para determinar que componente gerou o evento, porque a
implementação de actionPerformed() só será chamada por
eventos gerados por JB1.
DOCUMENTAÇÃO JAVA
• https://docs.oracle.com/javase/8/docs/api/javax/swing/package-
summary.html
EXERCÍCIOS

Weitere ähnliche Inhalte

Was ist angesagt?

Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosLeinylson Fontinele
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a ObjetosIgor Takenami
 
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e VídeoCurso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e VídeoTiago Antônio da Silva
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Daniel Brandão
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 
Git e Github para Iniciantes
Git e Github para IniciantesGit e Github para Iniciantes
Git e Github para IniciantesLoiane Groner
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoRangel Javier
 
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I  Aula 02 - Introdução aos Bancos de DadosBanco de Dados I  Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I Aula 02 - Introdução aos Bancos de DadosLeinylson Fontinele
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaDaniel Brandão
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoRademaker Siena
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsDenis L Presciliano
 

Was ist angesagt? (20)

Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e VídeoCurso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Introdução ao MySQL
Introdução ao MySQLIntrodução ao MySQL
Introdução ao MySQL
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
 
Aula02
Aula02Aula02
Aula02
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Git e Github para Iniciantes
Git e Github para IniciantesGit e Github para Iniciantes
Git e Github para Iniciantes
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 
Ficheiros em JAVA
Ficheiros em JAVAFicheiros em JAVA
Ficheiros em JAVA
 
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I  Aula 02 - Introdução aos Bancos de DadosBanco de Dados I  Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e applets
 
Estrutura de dados - Filas
Estrutura de dados - FilasEstrutura de dados - Filas
Estrutura de dados - Filas
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 

Ähnlich wie Interfaces Gráficas em Java Parte 1

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.Gabriel Jesus
 
Trabalhando com eventos e serviços no Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2Trabalhando com eventos e serviços no Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2William Felipe
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com PrimefacesFabio Noth
 
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com SwiftSemcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com SwiftJuliana Chahoud
 
Curso Android 01: Introdução
Curso Android 01: IntroduçãoCurso Android 01: Introdução
Curso Android 01: IntroduçãoAline Borges
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsDenis L Presciliano
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e AlémAndre Baltieri
 
Applets e Java web start
Applets e Java web startApplets e Java web start
Applets e Java web startArtur Rodrigues
 
LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08Carlos Santos
 
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 2Elaine Cecília Gatto
 
Java - Gestão de componentes curso profissional
Java - Gestão de componentes curso profissionalJava - Gestão de componentes curso profissional
Java - Gestão de componentes curso profissionala41172
 
Interfaces Gráficas em Java Parte 3
Interfaces Gráficas em Java Parte 3Interfaces Gráficas em Java Parte 3
Interfaces Gráficas em Java Parte 3Elaine Cecília Gatto
 
Interfaces Gráficas em Java Parte 3
Interfaces Gráficas em Java Parte 3Interfaces Gráficas em Java Parte 3
Interfaces Gráficas em Java Parte 3Elaine Cecília Gatto
 
React JS - Parte 1
React JS - Parte 1React JS - Parte 1
React JS - Parte 1Bruno Catão
 
Desenvolvimento Moderno de Aplicativos Android
Desenvolvimento Moderno de Aplicativos AndroidDesenvolvimento Moderno de Aplicativos Android
Desenvolvimento Moderno de Aplicativos AndroidNelson Glauber Leal
 

Ähnlich wie Interfaces Gráficas em Java Parte 1 (20)

Java 17 Swing
Java 17 SwingJava 17 Swing
Java 17 Swing
 
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.
 
Trabalhando com eventos e serviços no Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2Trabalhando com eventos e serviços no Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com Primefaces
 
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com SwiftSemcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
 
Maven 2
Maven 2Maven 2
Maven 2
 
Conhecendo o Spring
Conhecendo o SpringConhecendo o Spring
Conhecendo o Spring
 
Curso Android 01: Introdução
Curso Android 01: IntroduçãoCurso Android 01: Introdução
Curso Android 01: Introdução
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e applets
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e Além
 
Applets e Java web start
Applets e Java web startApplets e Java web start
Applets e Java web start
 
LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08
 
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
 
Nokia SDK for Java
Nokia SDK for JavaNokia SDK for Java
Nokia SDK for Java
 
Java - Gestão de componentes curso profissional
Java - Gestão de componentes curso profissionalJava - Gestão de componentes curso profissional
Java - Gestão de componentes curso profissional
 
Interfaces Gráficas em Java Parte 3
Interfaces Gráficas em Java Parte 3Interfaces Gráficas em Java Parte 3
Interfaces Gráficas em Java Parte 3
 
Interfaces Gráficas em Java Parte 3
Interfaces Gráficas em Java Parte 3Interfaces Gráficas em Java Parte 3
Interfaces Gráficas em Java Parte 3
 
React JS - Parte 1
React JS - Parte 1React JS - Parte 1
React JS - Parte 1
 
Desenvolvimento Moderno de Aplicativos Android
Desenvolvimento Moderno de Aplicativos AndroidDesenvolvimento Moderno de Aplicativos Android
Desenvolvimento Moderno de Aplicativos Android
 

Mehr von Elaine Cecília Gatto

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaElaine Cecília Gatto
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaElaine Cecília Gatto
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Elaine Cecília Gatto
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCElaine Cecília Gatto
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxElaine Cecília Gatto
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Elaine Cecília Gatto
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarElaine Cecília Gatto
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesElaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationElaine Cecília Gatto
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfElaine Cecília Gatto
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Elaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoElaine Cecília Gatto
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsElaine Cecília Gatto
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoElaine Cecília Gatto
 

Mehr von Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 

Kürzlich hochgeladen

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
 
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
 
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
 
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
 
BNCC Geografia.docx objeto de conhecimento
BNCC Geografia.docx objeto de conhecimentoBNCC Geografia.docx objeto de conhecimento
BNCC Geografia.docx objeto de conhecimentoGentil Eronides
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
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
 
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanholaSLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanholacleanelima11
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
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
 
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
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 

Kürzlich hochgeladen (20)

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"
 
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
 
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
 
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
 
BNCC Geografia.docx objeto de conhecimento
BNCC Geografia.docx objeto de conhecimentoBNCC Geografia.docx objeto de conhecimento
BNCC Geografia.docx objeto de conhecimento
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
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
 
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanholaSLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
SLIDE DE Revolução Mexicana 1910 da disciplina cultura espanhola
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
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
 
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
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 

Interfaces Gráficas em Java Parte 1

  • 1. INTERFACES GRÁFICAS SWING – PARTE 1 Prof.ª M.ª Elaine Cecília Gatto
  • 3. INTRODUÇÃO • SWING: • Coleção de classes e interfaces • Rico conjunto de componentes visuais: • Botões de ação • Campos de texto • Barras de rolagem • Caixas de seleção • Árvores • Tabelas • Menus
  • 4. INTRODUÇÃO • Evento • É um recurso Java • É o mecanismo pelo qual o programa é notificado sobre iterações do usuário • AWT • Abstract Window Toolkit • Sistema de interface gráfica original do Java • Dependente de plataforma
  • 5. INTRODUÇÃO • AWT • Componentes pesados • Interface gráfica usável, porém limitada • Problemas com o uso de janelas nativas específicas da plataforma (ou pares nativos): • Um componente pode aparecer e agir de forma diferente em cada sistema operacional que executar; • Aparência fixa sem possibilidade de alteração; • Componentes pesados são sempre opacos; • etc.;
  • 6. INTRODUÇÃO • SWING • 1997 • Java Foundation Classes = JFC • Java 1.1: biblioteca separada • Java 1.2: integrado à biblioteca • Recursos chave: • Componentes leves • Aparência adaptável
  • 7. INTRODUÇÃO • SWING • Componentes leves: • O componente é escrito em Java • Usa a janela fornecida por um predecessor pesado • Não tem um par nativo • Eficientes e Flexíveis • Formas geométricas diversas • Componentes leves são transformados em pares específicos da plataforma, mas a aparência é determinada pelo swing
  • 8. INTRODUÇÃO • SWING • Cada componente swing é gerado por código Java e não por pares específicos de plataforma • Aparência e lógica são separadas • Aparência: • Permite alterar a maneira como o componente é gerado sem afetar outros aspectos • Conecta uma nova aparência a qualquer componente sem criar efeitos colaterais no código • Metal e Motif
  • 9. INTRODUÇÃO • SWING • Aparência Metal: • Disponível para todos • Independente de plataforma • Aparência padrão • MVC: • Model-View-Control • Arquitetura de componentes clássica • Permite a aparência adaptável
  • 10. INTRODUÇÃO • SWING • MVC: • Model: informações de estado associadas ao componente • View: determina como o componente será exibido na tela • Control: determina como o componente reagirá ao usuário • Exemplo: quando alguém clicar em uma caixa de seleção, o CONTROLADOR reagirá alterando o MODELO para refletir a escolha, resultando na atualização da VISUALIZAÇÃO
  • 11. INTRODUÇÃO • SWING • Arquitetura modelo-delegação de UI: • Arquitetura modelo separável • Swing usa MVC mas não a versão clássica • Swing usa uma versão modificada de MVC que combina view e control na mesma entidade lógica (delegação UI) • Swing é fácil de usar e NÃO substitui o AWT • AWT ainda faz parte do JAVA e SWING se baseia nele
  • 13. COMPONENTES E CONTEINERES • Dois importantes itens • Todos os contêineres também são componentes • Componentes: • É um controle visual independente • Botão de ação, controle deslizante, etc. • Contêineres: • Contém um grupo de componentes • Tipo especial de componente • Projetado para conter outros componentes
  • 14. COMPONENTES E CONTEINERES • Toda interface gráfica terá pelo menos UM CONTEINER • Contêineres podem conter outros contêineres • Hierarquia de contenção: Deve haver um contêiner de nível superior
  • 15. COMPONENTES E CONTEINERES • Componentes: • Componentes swing derivam de Jcomponent • JComponent: • Fornece funcionalidade comum a todos os componentes • Herda as classes Container e Component de AWT • Pacote: javax.swing (representação dos componentes) • Um componente Swing se baseia e é compatível com um componente do AWT
  • 16. COMPONENTES E CONTEINERES JApplet JButton JCheckBox JCheckBoxMenuItem JColoChooser JComboBox JComponent JDesktopPane JDialog JEditorPane JFileChooser JFormattedTextField JFrame JInternaFrame JLabel JLayer JLayeredPane JList JMenu JMenuBar JMenuItem JOptionPane JPanel JPasswordField JPopupMenu JProgressBar JRadioButton JRadioButtonMenuItem JRootPane JScrollBar JScrollPane JSeparator JSlider JSpinner JSplitPane JTabbedPane JTable JTextArea JTextField JTextPane JToggleButton JToolBar JToolTip JTree JViewPort JWindows
  • 17. COMPONENTES E CONTEINERES • Contêineres de nível superior: • JFrame, JApplet, JWindow e JDialog • Não herdam de JComponent • Herdam de Component e Container de AWT • São componentes pesados • Estão no topo de uma hierarquia de contenção • Não podem estar contidos em outros contêineres • JFrame é o mais usado para aplicativos
  • 19. PAINÉIS DO CONTEINER • Cada contêiner de nível superior define um conjunto de painéis • JROOTPANE: • Topo da hierarquia • Container leve • Gerencia outros painéis • Ajuda a gerenciar a barra de menus • Painel de vidro, painel de conteúdo e painel em camadas: painéis que compõem o painel raiz
  • 20. PAINÉIS DO CONTEINER • Painel de vidro: • Painel de nível superior • Fica acima de todos os outros painéis • Cobre totalmente os outros painéis • Permite o gerenciamento de eventos do mouse que afetam o contêiner inteiro ou a geração de algo acima de outro componente
  • 21. PAINÉIS DO CONTEINER • Painel em CAMADAS: • Permite que os componentes recebam valores de profundidade • O valor de profundidade determina como os componentes são sobrepostos • Contem o painel de conteúdo e a barra de menus que é opcional
  • 22. PAINÉIS DO CONTEINER • Painel de conteúdo: • Painel que a sua aplicação interagirá • É a este painel que serão adicionados componentes visuais • Contem os componentes com os quais o usuário interage • Muito do que acontece com esses painéis é em segundo plano e não teremos de usar diretamente
  • 24. GERENCIADORES DE LAYOUT • Controla a posição dos componentes dentro de um contêiner • Determina o local dos controles dentro de um contêiner • Todos os gerenciadores de layout são instancias de uma classe que implementa a interface LAYOUTMANAGER
  • 25. GERENCIADORES DE LAYOUT • FlowLayout: • Layout simples • Posiciona os componentes da esquerda para a direita e de cima para baixo • BorderLayout: • Layout padrão para um painel de conteúdo • Posiciona os componentes no centro ou nas bordas do contêiner
  • 26. GERENCIADORES DE LAYOUT • GridLayout: • Dispõe os componentes dentro de uma grade • GridBagLayout: • Dispõe os componentes de tamanhos diferentes dentro de uma grade flexível
  • 27. GERENCIADORES DE LAYOUT • BoxLayout: • Dispõe os componentes vertical ou horizontalmente dentro de uma caixa • SpringLayout: • Dispõe os componentes de acordo com um conjunto de restrições
  • 29. EXEMPLO • JFrame: contêiner de nível superior • JLabel: componente que cria um rótulo e exibe informação. É um componente passivo
  • 30. EXEMPLO • Programas swing são acionados por eventos • O evento gerado é passado para o aplicativo com uma chamada a um tratador de eventos que o aplicativo define • O tratador é executado na THREAD de despacho do evento fornecida pelo Swing e não na THREAD principal do aplicativo • Tratadores de eventos são chamados em uma THREAD que não foi criada por eles
  • 31. EXEMPLO • Duas THREADs diferentes não podem atualizar o mesmo componente ao mesmo tempo. • Todos os componentes de GUI devem ser criados e atualizados a partir da THREAD de despacho do evento E NÃO da THREAD PRINCIPAL do aplicativo • MAIN é executado na thread principal e NÃO pode instanciar diretamente um objeto GUI. • Main deve criar um objeto RUNNABLE para ser executado na THREAD de despacho do evento e fazer esse objeto criar a GUI.
  • 32. EXEMPLO • Swing Utilities • Dois métodos para criar thread no despacho de evento • invokeLater(Runnable objeto): retorna imediatamente • invokeAndWait(Runnable objeto): espera até o objeto.run() retornar
  • 34. TRATAMENTO DE EVENTOS • Modelo de delegação de eventos: • Mecanismo de tratamento de eventos • Uma fonte gera um evento e o envia para um ou mais ouvintes • O ouvinte apenas espera até receber um evento • Ao receber o evento, o ouvinte processa o evento e retorna
  • 35. TRATAMENTO DE EVENTOS • A lógica que processa eventos fica claramente separada da lógica da interface de usuário que os gera • Um elemento da interface de usuário pode DELEGAR o processamento de um evento para um código separado • Os ouvintes devem SE registrar em uma fonte para receber a notificação de um evento
  • 37. EVENTOS • O evento é o objeto que descreve uma mudança de estado em uma fonte • Java.ultil.EventObject: super classe de todos os eventos • Java.awt.evento e javax.swing.event: classes de eventos
  • 39. FONTES DE EVENTOS • É um objeto que gera um evento. • Quando um evento é gerado, a fonte deve envia-lo para todos os ouvintes registrados. • addTipoListener(TipoListener tl): método usado pelos ouvintes para se registrarem em uma fonte • Cada tipo de evento tem o seu próprio método de registro.
  • 40. FONTES DE EVENTOS • addKeyListener(): método que registra um ouvinte que recebe eventos de pressionamento de teclas no teclado • addMouseMotionListener(): método que registra um ouvinte de movimento do mouse • Quando ocorre um evento, todos os ouvintes registrados são notificados.
  • 41. FONTES DE EVENTOS • removeTipoListener(TipoListener tl): método fornecido pela FONTE para que um ouvinte possa cancelar interesse em um tipo específico de evento • removeKeyListener(): remove um ouvinte de pressionamento de teclas • A fonte que gera os eventos deve fornecer os métodos para adicionar e remover ouvintes
  • 43. OUVINTES DE EVENTOS • Um OUVINTE é um objeto que é notificado quando um evento ocorre. • Dois requisitos: • 1) precisa ter registro em uma ou mais fontes para ser notificado sobre um tipo de evento • 2) deve implementar métodos para o recebimento e processamento desse evento
  • 44. OUVINTES DE EVENTOS • Um OUVINTE é um objeto que é notificado quando em evento ocorre. • Dois requisitos: • 1) precisa ter registro em uma ou mais fontes para ser notificado sobre um tipo de evento • 2) deve implementar métodos para o recebimento e processamento desse evento
  • 45. OUVINTES DE EVENTOS • Os métodos que recebem e processam eventos são definidos em um conjunto de interfaces. • ActionListener: • Interface que define um método que recebe notificação quando uma ação ocorre • Qualquer objeto pode receber e processar esse evento
  • 46. OUVINTES DE EVENTOS • Um tratador de eventos deve executar sua tarefa rapidamente e retornar. • Quando uma operação demorada é necessária, uma THREAD separada é criada para esse fim. • Uma operação longa não deve ser executada por um tratador de eventos pois isso retardaria a aplicação inteira.
  • 47. CLASSES DE EVENTOS E INTERFACES DE OUVINTES
  • 48. CLASSES DE OUVINTES • EventObject: • superclasse de todos os eventos • faz parte de java.útil • AWTEvent: • subclasse de EventObject. • superclasse de todos os eventos em AWT
  • 49. JAVA.AWT.EVENT Classe de Eventos Geração Ouvinte de eventos ActionEvent Quando uma ação ocorre dentro de um controle ActionListener Adjustment Event Quando uma barra de rolagem é manipulada AdjustmentEvent FocusEvent Quando um componente ganha ou perde foco FocusEvent
  • 50. JAVA.AWT.EVENT Classe de Eventos Geração Ouvinte de eventos ItemEvent Quando um item é selecionado ItemListener KeyEvent Quando uma entrada do teclado é recebida KeyListener MouseEvent Arrastar, mover, clicar, pressionar, soltar. Quando o mouse entra ou sai de um componente MouseListener e MouseMotionList ener
  • 51. JAVA.AWT.EVENT Classe de Eventos Geração Ouvinte de eventos Mouse WhellEvent Quando a roda do mouse é movida Mouse WhellEvent WindowEvent Quando um janela é ativada, fechada, desativada, deiconificada, iconificada, aberta ou abandonada WindowListener
  • 52. JAVA.SWING.EVENT Classe de Eventos Geração Ouvinte de eventos AncestorEvent Quando o predecessor de um componente tiver sido adicionado, movido ou removido AncestorListener ChangeEvent Quando um componente muda seu estado ChangeListener
  • 53. JAVA.SWING.EVENT Classe de Eventos Geração Ouvinte de eventos Hyperlink Event Quando um hyperlink é acessado HyperlinkEvent ListDataEvent Quando o conteúdo de uma lista muda ListDataListener ListSelection Event Quando a seleção em uma lista muda ListSelection Event MenuEvent Quando ocorre uma seleção no menu MenuListener
  • 54. JAVA.SWING.EVENT Classe de Eventos Geração Ouvinte de eventos Table ModelEvent Quando o modelo tabela muda Tabel ModelEvent Tree Expansion Event Quando uma árvore é expandida ou recolhida Tree ExpansionEvent
  • 55. JAVA.SWING.EVENT Classe de Eventos Geração Ouvinte de eventos Tree ModelEvent Quando um modelo de árvore é expandida ou recolhida Tree ModelListner Tree SelectionEvent Quando um nó de uma árvore é selecionado Tree SelecionListener
  • 57. CLASSES ADAPTADORAS • Fornecem uma implementação vazia dos métodos das interfaces de ouvintes de eventos • São uteis para receber e processar apenas alguns dos eventos associados a uma interface de eventos específica • Uma nova classe pode ser definida para agir como um ouvinte de eventos, estendendo uma das classes adaptadoras e implementando somente os métodos que forem interessantes
  • 58. CLASSES ADAPTADORAS • Isso permite diminuir a quantidade de métodos vazios desnecessários • Nem todas as interfaces tem uma classe adaptadora correspondente • Normalmente existem classes adaptadoras para aqueles ouvintes que tem mais de dois métodos
  • 59. CLASSES ADAPTADORAS • MouseMotionListener: • mouseDragged() • mouseMoved() • MouseMotionAdapter fornece implementações vazias destes dois métodos • Se o interesse estiver apenas na ação de arrastar o mouse, então: • Estender MouseMotionAdapter • Implementar mouseDragged()
  • 60. CLASSES ADAPTADORAS Classe adaptadora Implementa FocusAdapter FocusListener KeyAdapter KeyListener MouseAdapter MouseListener MouseMotionAdapter MouseMotionListener MouseInputAdapter MouseListener e MouseMotionListener WindowsAdapter WindowsListener
  • 62. BOTÃO DE AÇÃO • É um dos controles mais simples e mais usados • É uma instancia de JBUTTON • JBUTTON herda a classe abstrata ABSTRACTBUTTON • ABSTRACTBUTTON define a funcionalidade comum a todos os botões • Botões podem conter: texto, imagens ou ambos
  • 63. BOTÃO DE AÇÃO • Quando um botão de ação é pressionado, ele gera um ACTIONEVENT • addActionListener(ActionListener AL): • adiciona ouvinte de ação • AL: objeto que receberá as notificações do evento • removeActionListener(ActionListener AL): • remove ouvinte de ação • AL: objeto que receberá as notificações do evento
  • 64. BOTÃO DE AÇÃO • Sintaxe de JBUTTON: • JButton(String msg) • msg: texto que será exibido no botão • Exemplo: JButton jb1 = new JButton(“Botão1");
  • 65. BOTÃO DE AÇÃO • ActionListener defie um método: • actionPerformed(ActionEvent ae) • Este método sempre é chamado quando um botão é pressionado. TRATADOR DE EVENTOS
  • 66. BOTÃO DE AÇÃO • Comando de ação: • getActionCommand() • Identifica qual botão foi pressionado • Obtém-se o comando de ação chamando este método
  • 67. BOTÃO DE AÇÃO • Sempre que um botão é pressionado, ele gera um evento de ação e todos os ouvintes registrados são notificados com uma chamada ao método ActionPERFORMED() • O objeto ACTIONEVENT que representa o evento de botão é passado como parâmetro. O evento que ocorreu é passado via ACTIONEVENT • O comando de ação associado ao botão que gerou o evento é obtido com uma chamada a GETACTIONCOMMAND()
  • 68. BOTÃO DE AÇÃO • Exemplo no netbeans
  • 70. JTEXTFIELD • Permite que o usuário insira uma linha de texto • Herda da classe abstrata JTEXTCOMPONENT • JTEXTCOMPONENT: • Superclasse de todos os componentes de texto • Obtém entradas do usuário baseadas em texto
  • 71. JTEXTFIELD • Sintaxe JTextField(int cols) • Cols: • largura do campo de texto em colunas • Tamanho físico do campo de texto na tela • Uma string maior que o número de colunas pode ser inserida
  • 72. JTEXTFIELD • ActionEvent é gerado quando a tecla ENTER é pressionada: • addActionListener() • removeActionListener() • actionPerformed() • getText(): obtém a string exibida atualmente no campo de texto
  • 73. JTEXTFIELD • JTEXTFIELD também possui uma string de comando de ação • O comando de ação é o conteúdo atual do campo de texto • setActionCommand(String cmd): permite configurar um comando de ação de acordo com sua necessidade
  • 74. JTEXTFIELD • Exemplo: JTextField jt1 = new JTextField(20); • EXEMPLOS NO NETBEANS (3 e 4)
  • 75. CLASSES INTERNAS ANONIMAS • Tratamento de eventos: • Abordagem simples e direta • MAIN implementa a interface de ouvinte • Todos os eventos são enviados para uma instancia dessa classe • MAIS FORMAS DE TRATAR EVENTOS
  • 76. CLASSES INTERNAS ANONIMAS • Classes de ouvinte separadas: • Classes diferentes tratariam eventos distintos e ficariam separadas da MAIN • Implementar ouvintes com classes internas anônimas
  • 77. CLASSES INTERNAS ANONIMAS • CLASSE INTERNA: • É uma classe não estática declarada dentro de outra classe • É uma classe aninhada • Uma classe interna não existe de forma independente da classe que a contem • Uma classe interna tem acesso a todas as variáveis e métodos de sua classe externa e pode referencia-los diretamente
  • 78. CLASSES INTERNAS ANONIMAS • CLASSE INTERNAANONIMA: • É uma classe interna que não tem um nome • A instancia da classe é gerada dinamicamente quando necessário • Facilitam a implementação de alguns tratadores de eventos • Vantagem: o componente que chama os métodos da classe já é conhecido
  • 79. CLASSES INTERNAS ANONIMAS • CLASSE INTERNAANONIMA: jb1.addActionListener ( new ActionListener () { public void actionPerformed(ActionEvent ae){ //tratamento das ações } } );
  • 80. CLASSES INTERNAS ANONIMAS • CLASSE INTERNAANONIMA: jb1.addActionListener ( new ActionListener () { public void actionPerformed(ActionEvent ae){ //tratamento das ações } } ); Não há necessidade de chamar GETACTIONCOMMAND() para determinar que componente gerou o evento, porque a implementação de actionPerformed() só será chamada por eventos gerados por JB1.