Sie sind auf Seite 1von 6

INE5612

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

Componentes Gráficos Componentes Gráficos


 Componentes gráficos da API do Java  Componentes do Swing
 AWT e Swing possuem JavaBeans gráficos
(mas nem todos os JavaBeans são gráficos!)
 Propriedades alteram a aparência ou o
comportamento do componente
 Eventos são ‘contidos’: se propagam somente
em uma janela/contêiner da interface gráfica

Componentes Gráficos Componentes Gráficos


 JLabel: rótulo (texto e/ou imagem)  JTextField: campo de texto
 Principais propriedades:  Principais propriedades:
 font
 font
 columns
 icon
 text, editable
 text
 horizontalAlignment
 background, foreground
 background, foreground
 {horizontal,vertical}Alignment
 Principais eventos:
 Principais eventos:
 actionPerformed, mouse*
 mouse{Clicked, Dragged, Entered, Exited,  key{Typed, Pressed, Released}
Moved, Pressed, Released, wheelMoved}

4
INE5612

Componentes Gráficos Componentes Gráficos


 JTextArea: área de texto  JButton: botão de ação
 Principais propriedades:  Principais propriedades:
 font  font
 text, editable  icon
 lineWrap  text, mnemonic
 rows, columns  background, foreground
 background, foreground  Principais eventos:
 Principais eventos:  actionPerformed
 key*  key*
 mouse*  mouse*

Componentes Gráficos Componentes Gráficos


 JCheckBox: caixa de seleção  JList: lista
 JRadioButton: botão de opção  Principais propriedades
 Principais propriedades:  font
 font, text, mnemonic  background, foreground
 background, foreground
 model
 buttonGroup, selected
 selectionMode
 Principais eventos:
 Principais eventos:
 actionPerformed
 key*, mouse*
 key*, mouse*
 valueChanged
 stateChanged

Componentes Gráficos Componentes Gráficos


 JComboBox: caixa de combinação  Contêineres
 Principais propriedades  JFrame: janela
 font  JPanel: painel
 background, foreground  JTabbedPane: painel tabulado
 model  JScrollPane: painel de rolagem
 selectedIndex, selectedItem  JToolBar: barra de ferramentas
 Principais eventos:  etc.
 actionPerformed

 key*, mouse*

5
INE5612

Componentes Gráficos
 Gerenciadores de Layout
 BorderLayout
 FlowLayout
 GridLayout
 BoxLayout
 NullLayout
 etc.

 Extensões
 FreeDesign
 AbsoluteLayout

Das könnte Ihnen auch gefallen