Beruflich Dokumente
Kultur Dokumente
Java
Unidade II
Linguagem de Programação Java
Orientada a objetos
Componentes no Java SE Possui um conjunto amplo de APIs
Multi-plataforma: Java Virtual Machine (JVM)
Java Integrada à Internet: applets, JSP, Servlets, ..
Java SE De fácil aprendizagem
JavaBeans Bem aceita por programadores e empresas
Componentes Gráficos Suportada por vários fabricantes de software
Possui suporte para componentes
JavaBeans
Enterprise JavaBeans
Java Java SE
Java está disponível em três edições: A plataforma Java Standard Edition (Java
Java ME (Micro Edition): para PDAs, celulares
SE) oferece suporte a:
e outros dispositivos com pouca memória e Serviços gerais como nomeação (JNDI),
bancos de dados (JDBC), segurança
poder de processamento limitado
(JavaSecurity), etc.
Java SE (Standard Edition): versão padrão do
APIs para comunicação e remota:
Java, com tudo que o usuário comum
Comunicação local usando pipes
necessita
Comunicação remota usando sockets
Java EE (Enterprise Edition): versão mais
Chamadas remotas de métodos usando
completa, para empresas utilizarem em seus Java RMI ou CORBA
servidores
Componentes: JavaBeans
Java SE Java SE
Java Naming and Directory Interface JavaSecurity
(JNDI) Fornece suporte a criptografia de dados
Associa nomes e atributos a objetos Java Permite a criação e a manipulação de chaves,
Permite a procura de objetos por nome ou certificados e listas de controle de acesso
atributos Pipes
Java DataBase Connectivity (JDBC) Canais de comunicação locais e unidirecionais
Permite que aplicações Java efetuem Ligam duas threads na mesma máquina virtual
consultas em SQL em bancos de dados Pacote java.io.*
relacionais
Drivers JDBC permitem acesso aos BDs
1
INE5612
Java SE Java SE
Sockets CORBA (Commom Object Request Broker
Representam uma porta de comunicação Architecture)
associada a uma aplicação
Padrão da OMG (Object Management Group)
Podem usar vários protocolos: TCP, UDP, etc.
Permite efetuar chamadas remotas de
Pacote java.net.*
métodos em sistemas abertos, distribuídos e
RMI (Remote Method Invocation) heterogêneos
Segue o modelo Cliente/Servidor Diferentes máquinas, sistemas operacionais
Fornece um suporte simples para RPC e linguagens de programação
Permite que um objeto Java chame métodos
Fornece um suporte completo para aplicações
de outro objeto Java rodando em outra distribuídas orientadas a objetos
máquina virtual
JavaBeans JavaBeans
JavaBeans Comunicação entre Beans
São componentes escritos em Java Chamadas de métodos locais
Situados na camada de aplicação
Canais de eventos locais
Podem ser usados em aplicações, applets,
Produtor: envia objetos
servlets, páginas JSP, ...
java.util.EventObject
API JavaBeans: java.beans.*
Consumidor: implementa
JavaBeans possuem:
java.util.EventListener
Métodos e atributos, como qualquer classe
Não possui suporte nativo para comunicação
Java
Propriedades: modificadas em tempo de
remota
projeto
JavaBeans JavaBeans
JavaBeans seguem os seguintes padrões: Métodos de acesso a propriedades
São classes públicas Atributo (opcional)
Possuem um construtor sem parâmetros private Tipo propriedade ;
Nomes de métodos para acesso a Setter (para propriedades modificáveis)
propriedades e eventos: public void setPropriedade (Tipo propriedade) {
Propriedade X acessada por métodos: this.propriedade = propriedade ;
setX() e isX() se X for do tipo boolean }
setX() e getX() para qualquer outro tipo Getter
Tratador do evento Y registrado com o public Tipo getPropriedade () {
método addYListener() e removido com return this.propriedade ;
removeYListener() }
2
INE5612
JavaBeans JavaBeans
Evento Interface de um tratador de eventos
import java.util.EventObject;
import java.util.EventListener;
public class MyEvent extends EventObject {
private Tipo valor; public interface MyEventListener extends EventListener {
public MyEvent (Object source, Tipo valor) { public void myHandler (MyEvent evt);
super(source); ...
this.valor = valor ; }
}
public Tipo getValor () {
return this.valor ;
}
}
JavaBeans JavaBeans
Lista que armazena tratadores de um evento Método de disparo de evento
protected javax.swing.event.EventListenerList my ListenerList = void fireMyEvent(Tipo valor) {
new javax.swing.event.EventListenerList(); Object[] list = myListenerList.getListenerList();
Método que registra um tratador de evento // Cada listener ocupa 2 posições na lista:
// nome da classe e a instância
public void addMy EventListener(My EventListener listener) {
for (int i = 0; i < list.length; i += 2) {
my ListenerList.add(My EventListener.class, listener);
if (list[i] == MyEventListener.class) {
}
((MyEventListener) list[i+1]).myHandler(
Método que remove um tratador de evento new MyEvent(this,valor));
public void removeMy EventListener(My EventListener lnr ) { }
my ListenerList.remove (my EventListener.class, lnr ); }
} }
Obs.: invocar o método sempre que o evento ocorrer
JavaBeans JavaBeans
Características adicionais dos JavaBeans Detalhes sobre a interface de JavaBeans
Salvar estado: interface java.io.Serializable são obtidos:
Usando a API java.lang.reflect e buscando
Controle de concorrência: palavra-chave
pelos nomes de métodos padronizados para
synchronized; pacote java.util.concurrent.* JavaBeans
Segurança: pacote java.security.*
get<Atributo>, set<Atributo>
Contêineres para acesso à plataforma e a seus add<Evento>Listener,
serviços: pacote java.beans.beancontext.* remove<Evento>Listener
Através da interface java.beans.BeanInfo,
que deve ser implementada por uma classe
chamada <NomeDoBean>BeanInfo
3
INE5612
JavaBeans JavaBeans
Vantagens e Limitações dos JavaBeans Distribuição e Implantação
Beans são reutilizáveis e configuráveis Beans são distribuídos em arquivos JAR
São fáceis de usar e de compor com outros
Arquivos JAR devem conter uma descrição do
Beans Bean
Para implantar o Bean, basta ter o arquivo
São mais fáceis de manter e distribuir que
JAR
classes
Depois de implantados, os Beans podem ser
Seu desenvolvimento é um pouco mais configurados e compostos com outros
complexo que o desenvolvimento de classes e componentes usando ferramentas de
packages Java desenvolvimento
4
INE5612
key*, mouse*
5
INE5612
Componentes Gráficos
Gerenciadores de Layout
BorderLayout
FlowLayout
GridLayout
BoxLayout
NullLayout
etc.
Extensões
FreeDesign
AbsoluteLayout