You are on page 1of 29

FVC

JAVABEANS
Desenvolvimento de componentes em Java Abordagem pratica

Prof: Douglas Tybel 07/03/2012


Efetiva Servios e Tecnologia LTDA Av. Jos Tozzi, 2003, Trreo. Sala 02. Centro, So Mateus/ES Fone: (27) 3767-2750 www.efetivavirtual.com.br contato@efetivavirtual.com.br

SUMRIO
INTRODUO ................................................................................................... 3 JAVABEAN APRESENTAO E RECURSOS............................................... 5 EXEMPLO INICIAL ......................................................................................... 6 REGRAS E CONVENES DE NOMECLATURA ......................................... 7 ESCOPO VISIBILIDADE DE SEU CDIGO ................................................ 9 CONSTRUTORES E DESTRUTORES......................................................... 10 NETBEANS PREPARANDO O AMBIENTE .................................................. 11 PRIMEIRO JAVABEANS NA PRATICA COM NETBEANS ............................. 12 INSTALAR JAVABENS COMO COMPONENTE SWING NO NETBEANS .. 18 TESTANDO O COMPONENTE RETANGULO RECEM-CRIADO ................ 20 Instanciando o componente JavaBean e obtendo resultados.................... 21 ICONE EM UM JAVABEAN ............................................................................. 25 CONSIDERAES FINAIS ............................................................................. 28 BIBLIOGRAFIA ................................................................................................ 29

INTRODUO
Quando falamos de componente, muitas pessoas ficam sem entender o que vem a ser na prtica, ou at mesmo constitui uma definio errnea em sua mente, afinal o que vem a ser um componente? Em busca desta resposta, o autor (FUKS & PIMENTEL, 2011) em seu livro sobre sistemas colaborativos, define componente sendo um pedao de software executvel, com um escopo de funcionamento bem definido, e que esteja em conformidade com um modelo de componentes. Aparentemente no mudou em nada nossa agonia, pois parece que ainda no ficou claro o que vem a ser realmente, neste sentido, o autor tenta exemplificar componentes realizando uma comparao com plugins de navegadores web usados para estender o suporte visualizao de contedo, como animaes em flash e documentos pdf. Ufa, parece que agora sim, comeamos a ter uma melhor viso do que vem a ser componente. Seguindo a ideia acima, ento quer dizer que podemos desenvolver pequenos softwares usando os modelos de componentes existentes e aplicarmos em outros sistemas? De acordo com o autor, podemos sim. Isso abre muito o leque na rea de desenvolvimento, depois porque, o numero de empresas focadas neste nicho vem aumentando, como por exemplo, a empresa DevExpress (devexpress.com) que aposta em mais recursos para os componentes bsicos j existentes com uma interface mais amigvel e elegante. A forma como os componentes so dispostos nas IDE
1

vem a ser a grande

sacada deste recurso, uma vez que estas ferramentas de desenvolvimento onde os componentes esto presentes possibilita um recurso de puxar e arrastar o que agiliza e muito o trabalho do desenvolvedor. Para facilitar o entendimento, vamos assumir como analogia que para um pedreiro construir um muro, basta que ele faa a massa e cada bloco pode ser colocado individualmente e comprado individualmente, assim como o componente. Atualmente um componente que vem chamando ateno o famoso widget, uma vez que ele empacota vrios recursos como telas, botes, menus e muitos
1

IDE (Integrated Development Environment), um ambiente integrado para desenvolvimento de software

4 outros, quase que um programa completo empacotado, deste modo reduz muito o custo com setores de desenvolvimento, afinal (SCHACH, 2009) fala muito bem sobre isso quando diz que para estimar custos vrios componentes geralmente mais rpido e preciso do que para um nico grande componente. Neste sentido o aumento de pequenos componentes vem chegando para ficar. Para quem acha que componente s usado em programao pode ficar de boca aberta quando souber que na rea de designer os componentes tambm esto presentes, para aqueles que gostam de realizar sites ou softwares web e adora aqueles layouts bem clean e futurista sem precisar criar tudo do zero, com certeza usar o nosso grande aliado componente. Sendo assim consulte sobre o projeto JQuery (jquery.com) que veio para ficar.

JAVABEAN APRESENTAO E RECURSOS


Porque comearmos a aprender desenvolvimento de componentes em Java a partir do Javabean ? A resposta a essa pergunta bem fcil, isso porque esse modelo de componente o mais simples, neste sentido ser um timo ponto de partida para nosso aprendizado. Mas no podemos confundir Javabeans com Enterprise JavaBeans (EJB), uma vez de acordo com a prpria (Oracle, Enterprise JavaBeans Technology, 2013) esse recurso uma arquitetura de componentes do lado do servidor para a plataforma Java Enterprise Edition (Java EE). A tecnologia EJB permite o desenvolvimento simplificado e rpido de aplicativos distribudos, transacionais, seguros e portteis baseados na tecnologia Java. De toda essa especificao podemos entender que o JavaBean existe dentro do EJB, no o oposto. No livro Big Java (Horstmann, 2004, p. 952) existe a definio do Javabean como sendo uma classe com um construtor default que expe propriedades atravs de seus mtodos get e set. Este componente bem similar estrutura de uma classe, mas a grande diferena que seu construtor deve ser publico e no ter parmetros de entrada. Algumas pessoas por curiosidade fazem a traduo da palavra Bean em busca de um melhor entendimento do que vem a ser, mas ao p da letra o significado seria algo como feijo, sim, voc entendeu bem, mas agora a pergunta a seguir seria o que tem haver feijo com programao? Bom, a resposta a essa pergunta tem base nas diversas tradues para a palavra, uma vez que Bean tambm pode ser boto ou at mesmo componente. Agora sim, a palavra que estvamos esperando, ainda assim podemos concluir que se estes componentes podem ser puxados e arrastados para um container (formulrio), ento como eu comunico um Bean com outro? Pois bem, essa uma grande pergunta que pode complicar a vida de muito profissional da rea ao tentar explicar, at porque o prprio IDE na maioria das vezes realiza esse trabalho para ns, de modo geral para os recursos do JavaBean so usados eventos para comunicar uns com os outros.

EXEMPLO INICIAL

Vamos ento visualizar a estrutura bsica de um Javabean simples:


public class Pessoas{ private int id; private String nome; public Pessoa(){} public int getId(){ return id; } public void setId (int id){ this.id = id; } public String getNome(){ return nome; } public void setNome(String nome){ this.nome = nome; } }
Tabela 1 - Javabean Pessoas Fonte: Prpria (2013)

Para (MELO, 2004, p. 31) indiscutvel que Unified Modeling Language (UML) um padro de mercado para modelagem de sistemas no paradigma da orientao a objetos com diversos diagramas que nos auxiliam na visualizao destas classes e funcionalidades, por esse motivo vamos ver abaixo como est disposta a visualizao do Javabeans Pessoas na verso diagrama de classe da UML:

Figura 1 - Diagrama classe - Pessoas Fonte: Prpria (2013)

A Figura 1 ilustra muito bem o Javabean da classe Pessoas descrita em cdigos acima na Tabela 1. O Bean devido sua caracterstica similar classe, nos possibilita realizar comparaes bem sucedidas sem perder o foco. Devemos inicialmente levar em conta trs divises de uma classe, aqui esto elas: O nome; As propriedades; E os eventos.

Na Figura 1 acima, veja que a classe Pessoas dividida respectivamente em trs partes horizontais nesta ordem.

REGRAS E CONVENES DE NOMECLATURA


Ao criar uma classe Javabean devemos seguir as mesmas regras que seguiramos no caso de criar uma classe em Java, isso facilita pelo fato deste conhecimento ser considerado bsico para a maioria dos desenvolvedores, naturalmente essa semelhana ajuda no fato de no precisarmos aprender algo totalmente novo e sim apenas adequar o que j conhecemos a bastante tempo. Como base para conhecimento, vamos listar algumas das regras bsicas descritas muito bem por (Xavier, 2013) que so: Toda classe deve comear com uma letra maiscula e, de preferncia, no pode conter letras no ASCII (caracteres de lngua de origem latina,

8 como caracteres acentuados). Portanto, no possvel declarar uma classe com qualquer caracter especial (@, #, $, %, &, *, _, etc...) ou nmero. Caso o nome de uma classe seja composto por mais de uma palavra, a primeira letra de cada palavra deve ser em maiscula. Veja que acima temos algumas regras que no devem ser deixadas de lado, pois podem causar erros na hora do desenvolvimento e, para economizarmos erros, vamos a um exemplo de declarao de classe Para a classe Pessoas, repare que a letra inicial maiscula enquanto as demais so minsculas, assim ocorre aplicao da primeira regra e, para fechar, vamos supor que queremos criar uma classe com nomes compostos, do tipo: Nota do aluno, para isso, vamos sempre deixar em maiscula as inicias das palavras compostas, desta forma ficaria: NotaAluno. As convenes para o segundo e terceiro item que propriedade e eventos, seguimos as mesmas regras para a declarao de variavel, que por sua vez segundo (BERG & FIGUEIR, 2006, pp. 34-35), a declarao de uma varivel consiste em: nome que a diferencia das demais; tipo de dado associado, que indica o tipo de informao que poder ser armazenada na varivel; contedo, que o dado guardado na varivel; endereo, que a localiza na memria;

O autor faz observaes relevantes sobre as variveis: 1) O nome de uma varivel nico em um algoritmo. 2) O contedo de uma varivel poder ser um dado todo tipo usado na sua criao. 3) O contedo de uma varivel substitudo por outro contedo que lhe venha a ser atribudo. 4) O uso do nome de uma varivel em uma expresso significa o uso do seu contedo (naquele momento) dentro da expresso. 5) O uso de um contedo de varivel em uma expresso no modifica seu valor.

Para a declarao da varivel, de modo geral, basta definir seu tipo e nome, onde se tem certa liberdade na nomenclatura, todavia, existem alguns limites bsicos a serem observados para que sua varivel no seja confundida com comandos internos. Cada linguagem de programao tem suas prprias regras para formao do nome de uma varivel, de modo geral, a regra comum : Nome de uma varivel pode ser composto por letras sem espao, dgitos e at mesmo o underline (_), sendo que o primeiro caractere deve ser uma letra.

ESCOPO VISIBILIDADE DE SEU CDIGO

Observe na Figura 1 que pouco antes das propriedades ou eventos, contem um sinal de subtrao ou adio, essa declarao em UML diz se o campo privado ou publico, sendo o sinal de subtrao a visibilidade private e adio a visibilidade public. Os atributos e variveis fazem parte de um escopo que utilizado para definir o tipo de acesso que ter determinado atributo, classe ou objeto. Uma parte ficar totalmente escondida e restrita, e a outra servir apenas ao pacote de classes que a classe que o definiu pertence, e uma ltima parte tem seu acesso tratado com as seguintes palavras-chave: public: Qualquer classe, de qualquer pacote, tem acesso a este. protected: Apenas as classes do mesmo pacote possuem acesso a este. private: Apenas a prpria classe poder acessar este.

Veja como definir variveis ou atributos com escopo: public int c; //Atributo pblico de nome c do tipo inteiro. protected double b; //Atributo protegido de nome b do tipo double. private boolean a; //Atributo particular de nome a do tipo boolean A sintaxe completa da definio de um atributo ou declarao de uma varivel em Java : escopo tipoPrimitivo nomeVariavel = valorInicial;

10

CONSTRUTORES E DESTRUTORES
Segundo (DALL 'OGLIO, 2007, p. 96), o destrutor ou finalizador um mtodo especial executado automaticamente quando o objeto deslocado da memria, quando atribumos o valor NULL ao objeto, quando utilizamos a funo para destruir sobre o mesmo ou, em ultima instancia, quando o programa finalizado. O mtodo destrutor pode ser utilizado para finalizar conexes, apagar os arquivos temporrios criados durante o ciclo de vida do objeto, dentre outros circunstncias. Em PHP para definir um mtodo destrutor em uma determinada classe basta declarar o mtodo __destruct() ou para o construtor __construct(), mas em Java a classe destruda automaticamente por um recursos da linguagem chamada Garbage Collector, por esse motivo os desenvolvedores em Java no se preocupam com a destruio do objeto, mas para a criao ainda necessrio um mtodo construtor. De modo geral, so mtodos que sero executados automaticamente em dois momentos do ciclo de vida do objeto, ao criar o objeto; ento ao final da vida do objeto. A fim de podermos executar funes automaticamente ao criar e ao destruir o objeto. Em Java, nas classes e at mesmo nos Javabeans ser necessrio criar um mtodo construtor sem passagem de parmetros de entrada, abaixo veja um recorte da classe da Tabela 1, focando apenas no construtor.
public class Pessoas{ [ Atributos suprimidos]

public Pessoa(){ //Cdigo que ser executado ao criar objeto }


[ Encapsulamentos suprimidos] }
Tabela 2 - Recorte classe pessoas Construtor Fonte: Prpria (2013)

Observe que o mtodo construtor constitudo apenas da visibilidade, nome classe sem parmetro entre os parnteses e um espao para cdigos em Java que possa vir a ser executado ao criar uma instancia da classe.

11

NETBEANS PREPARANDO O AMBIENTE


Para iniciar nossos testes, a primeira coisa que devemos fazer preparar o ambiente de desenvolvimento. Podemos comparar com um escritrio montado para poder realizar o servio de papelada. Por esse motivo, escolher as ferramentas mais produtivas, conta e muito quando diz respeito a custos e prazos. Por motivos didticos, realizaremos os testes no IDE Netbeans verso superior a verso 6. Para quem nunca ouviu falar, (GONALVES, 2006, p. 23), conceitua o Netbeans como sendo um ambiente de desenvolvimento, IDE (Interface Development Environment), open-source, isso quer dizer, de cdigoaberto escrito totalmente em Java. O Autor completa ainda com a histria do Netbeans e diz que foi fundado pela Sun Microsystems em junho de 2000 e, ainda nos dias de hoje continua sendo seu principal patrocinador. Para que essa ferramenta funcione adequadamente, teremos que instalar previamente o Software Development Kit (SDK) e Java Runtime Environment (JRE). O JDK pode ser baixado juntamente com a instalao do Netbeans. Existem outras IDE, as mais conhecidas so: JCreator da Xinon Software, o Eclipse da IBM, JBuilder da Borland e JDeveloper da Oracle, todos eles oferecem recursos semelhantes na hora de desenvolver seu software para Java. Alm disso, tambm fornecem acesso rpido e fcil para desenvolvimento em Java, porem como no foi encontrado nenhum estudo que indique qual a mais produtiva ou com mais recursos, aps varrer a internet, foi verificado que duas delas se destacam e a maioria dos desenvolvedores tem essa indeciso na hora de dizer qual o melhor, pois parece que alguns benefcios presentes em um, esto ausente no outro, portanto uma o Netbeans e a outra o Eclipse. Ento para quem quer se aventurar em outra ferramenta, fique a vontade, mas para o estudo usaremos o Netbeans. Abaixo a lista dos itens necessrios para iniciarmos: 1. SDK atualizado. 2. JRE atualizado. 3. Netbeans verso 6 ou superior.

12

PRIMEIRO JAVABEANS NA PRATICA COM NETBEANS


Para criarmos um Javabeans, comeamos como se fossemos criar um projeto normal no Netbeans, acessando o menu Arquivo >> Novo projeto..., a tela a seguir ser apresentada:

Figura 2 - Tela Novo Projeto no Netbeans Fonte: Prpria(2013)

Como o Netbeans uma IDE com suporte a outras linguagens alm do Java, por esse motivo em categorias escola a pasta Java e em Projetos escolha Aplicao Java. Para continuar, basta clicar no boto prximo e seguir as instrues. Para minimizar erros, assumiremos O o seguinte das nome para o projeto: PrimeiroJavaBean. restante informaes preenchido

automaticamente no sendo necessria alterao. Prximo passo clicar no boto Finalizar e concluir o assistente. Seu projeto foi criado, neste sentido, continuaremos com o prximo passo que ser criar a classe Javabeans, para isso, clique sobre o pacote primeirojavabean, (uma pasta amarela) e com boto direito escolha no menu suspenso Novo >> Outros. Em categoria marque Objetos JavaBeans, e Tipo de arquivos defina como Componente JavaBeans, clique no boto prximo, neste sentido defina o nome do seu bean como Retangulo, e para fechar, clique em concluir. A tela final do assistente ser algo do tipo:

13

Figura 3 - Tela New Componente JavaBeans Fonte: Prpria(2013)

Abaixo segue a estrutura esqueltica de um Bean modelo para que voc possa se basear:
public class Retangulo implements Serializable { public static final String PROP_SAMPLE_PROPERTY = "sampleProperty"; private String sampleProperty; private PropertyChangeSupport propertySupport; public Retangulo() { propertySupport = new PropertyChangeSupport(this); } public String getSampleProperty() { return sampleProperty; } public void setSampleProperty(String value) { String oldValue = sampleProperty; sampleProperty = value; propertySupport.firePropertyChange(PROP_SAMPLE_PROPERTY, sampleProperty); } public void addPropertyChangeListener(PropertyChangeListener listener) { propertySupport.addPropertyChangeListener(listener); }

oldValue,

14

public void removePropertyChangeListener(PropertyChangeListener listener) { propertySupport.removePropertyChangeListener(listener); } }

Tabela 3 - Estrutura base de um JavaBean Fonte: Prpria (2013)

Ao visualizar tanto cdigo no fique assustado, pois a maioria do cdigo ai trata-se do resultado dos encapsulamentos e foram e sero gerados automaticamente pela IDE. Vamos personalizar nosso retngulo criando trs campos que so: 1. Base 2. Altura 3. Area Os campos nos auxiliaro na manipulao deste Bean. Funcionar da seguinte maneira: Quando o usurio arrastar nosso bean para o Frame do seu projeto, poder definir os atributos base e tambm altura e obter a rea calculada. Para realizar essa tarefa teremos que criar os campos Base e Altura com as capsulas get e set, contudo o atributo Area ser apenas a capsula get, uma vez que ser somente leitura para o usurio, desta forma o usurio no poder alterar este Bean diretamente, apenas a partir dos atributos Base e Altura. Procure pelo construtor do Bean public Retangulo(), ento no espao vazio acima desta linha, clique com boto direito do mouse e escolha Inserir Cdigo....

Tabela 4 - Opo Inserir cdigo... Fonte: Prpria (2013)

15 Role a barra at a ultima opo Adicionar propriedade..., na tela Adicionar Propriedade preencha com nome do atributo e seu tipo, deixe o padro para Gerar getter e setter conforme informado acima e clique no boto OK:

Figura 4 - Tela Adicionar Propriedade Fonte: Prpria (2013)

Faa o mesmo para o campo altura e para o campo Area marque apenas a opo Gerar getter, uma vez que este campo ser somente leitura para o usurio. O resultado ser algo do tipo:
public class Retangulo implements Serializable { public static final String PROP_SAMPLE_PROPERTY = "sampleProperty"; private String sampleProperty; private PropertyChangeSupport propertySupport; private float base; /** * Get the value of base * * @return the value of base */ public float getBase() {

16
return base; } /** * Set the value of base * * @param base new value of base */ public void setBase(float base) { this.base = base; } private float altura; /** * Get the value of altura * * @return the value of altura */ public float getAltura() { return altura; } /** * Set the value of altura * * @param altura new value of altura */ public void setAltura(float altura) { this.altura = altura; } private float area; /** * Get the value of area * * @return the value of area */ public float getArea() { return area; } public Retangulo() { propertySupport = new PropertyChangeSupport(this); } public String getSampleProperty() { return sampleProperty; } public void setSampleProperty(String value) { String oldValue = sampleProperty; sampleProperty = value;

17
propertySupport.firePropertyChange(PROP_SAMPLE_PROPERTY, sampleProperty); } public void addPropertyChangeListener(PropertyChangeListener listener) { propertySupport.addPropertyChangeListener(listener); } public void removePropertyChangeListener(PropertyChangeListener listener) { propertySupport.removePropertyChangeListener(listener); } }
Tabela 5 - JavaBean Retangulo Fonte: Prpria (2013)

oldValue,

O acabamento ser uma pequena modificao que faremos no mtodo: public float getArea(). Isso porque o retorno desse mtodo deve ser o calculo da rea do retngulo. Como de conhecimento de todo estudante, a rea do retngulo calculada com a multiplicao da base pela altura. Essa formula seria: A = b * h. Uma vez que A = rea, b= Base e h = Altura.
public float getArea() { return area; }
Tabela 6 - Mtodo getArea antes da alterao Fonte: Prpria (2013)

Alterao do mtodo com o calculo:


public float getArea() { this.area = (this.base*this.altura); return area; }
Tabela 7 - Mtodo getArea aps alterao Fonte: Prpria (2013)

Aps a alterao do encapsulamento getArea para o calculo da rea, devemos ento complicar o projeto para testar. Clique com boto direito sobre o projeto e escolha >> Limpar e construir. Na caixa de sada ser informado o diretrio no qual o .jar do componente foi gerado, algo do tipo: Documents\NetBeansProjects\PrimeiroJavaBean\dist\PrimeiroJavaBean.jar. Anote esse caminho, pois para instalar seu componente no Netbeans ser necessrio direcionar para esse arquivo.

18

INSTALAR JAVABENS COMO COMPONENTE SWING NO NETBEANS


Para a instalao do JavaBean na paleta de componentes swing do Netbeans basta ir at o menu Ferramentas >> Paleta >> Componentes Swing/AWT. Na tela Gerenciador de Paleta clique no boto Nova categoria e crie uma categoria chamada Terceiros para abrigar seu novo componente.

Figura 5 - Gerenciador de Paleta Fonte: Prpria (2013)

Clique no boto Adicionar do JAR e procure pelo caminho do .jar criado no passo anterior.

Figura 6 - Tela Instalar componente na paleta (Selecionar arquivo JAR) Fonte: Prpria (2013)

19 Clique sobre o boto avanar e na segunda fase da instalao escolha a classe recm-criada, chamada: Retangulo.

Figura 7 - Fase selecionar Componentes Fonte: Prpria (2013)

O ultimo passo apontar a categoria que deseja que seu componente seja instalado, neste sentido, direcione para a categoria criada anteriormente chamada: Terceiros.

Figura 8 - Fase Selecionar Categoria da Paleta Fonte: Prpria (2013)

20 Pronto, agora quando estiver em um projeto e desejar adicionar um componente que calcula a rea do retngulo basta puxar e arrastar o componente novo para seu frame.

TESTANDO O COMPONENTE RETANGULO RECEM-CRIADO


Crie um novo projeto de teste, pode ser um aplicativo Java normal. Crie um novo frame como formulrio.

Figura 9 - Arrastando o JavaBean para o Frame Fonte: Prpria (2013)

No fique assustado se no momento em que tiver arrastado e soltado o JavaBean no frame, nada tenha acontecido, isso porque os beans naturalmente so no visuais, para que seja visual, ser necessrio herdar alguns comportamentos ou melhor sua implementao, neste sentido, para localiza-lo e utiliza-lo, v at a parte esquerda do Netbeans no Inspetor de Objetos, repare na categoria Outros componentes e perceber a existncia do nosso JavaBean.

Figura 10 - Inspetor de Objetos do Netbeans Fonte: Prpria (2013)

21 Para visualizar as propriedades que criamos, clique com o boto direito do mouse sobre o Javabean retangulo1 que se encontra na categoria Outros componentes do Inspetor de objetos e escolha a opo Propriedades no menu suspenso.

Figura 11 - Propriedade do JavaBean Retangulo Fonte: Prpria (2013)

Observe com ateno a presena das propriedades criadas por ns como base, altura e rea. Veja tambm que o atributo rea est apagado, impossibilitando definio de valores, isso porque ao criar essa propriedade, deixamos definidos apenas a capsula Getter, que vem a ser obteno de dados e no definio de dados como o Setter, enquanto os outros foram definidos com ambas as capsulas.

Instanciando o componente JavaBean e obtendo resultados


Para iniciar, v at o Frame de teste que voc criou e adicione trs componentes Label(JLabel), mais trs componentes Campo Formatado (JFormattedTextField) e por fim um Boto (JButton). Ficar conforme imagens abaixo:

22

Tabela 8 - Imagens construo formulrio teste Fonte: Prpria (2013)

Para os jLabels, altere o rtulo respectivamente para Base:, Altura: e rea:. Para os jFormattedTexts edite os texto e deixem em brancos e altere os nomes respectivamente para: basejFormattedTextField, alturajFormattedTextField e areajFormattedTextField, observe na imagem acima o resultado. O boto altere o rtulo para Calcular. Clique com boto direito sobre o boto Calcular v at Events >> Action >> actionPerformed.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: }
Tabela 9 - ActionPerformed do jButton1 Fonte: Prpria (2013)

Acima segue o trecho do evento que ocorrer quando o usurio clicar sobre o boto, neste caso como no tem cdigo, significa que nada acontecer. Nosso objetivo que quando o usurio informar a base e a altura, ao clicar sobre o boto Calcular no campo rea ser informado o resultado, tudo isso sem realizar calculo, usando o recurso disponvel no componente que criamos.

23

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: //Para facilitar o entendimento, definiremos trs variveis. float base; float altura; float area; //Obter o texto digitado pelo usurio no campo, //converter para float e atribuir a variavel base base = Float.parseFloat( basejFormattedTextField.getText() ); altura = Float.parseFloat( alturajFormattedTextField.getText() ); //Definir as propriedades do componente retngulo //com as variveis obtidas retangulo1.setBase(base); retangulo1.setAltura(altura); //Obter o valor da rea do mtodo getArea do Retangulo area = retangulo1.getArea(); //Atribuir valor ao componente na tela para o usurio areajFormattedTextField.setValue(area); }
Tabela 10 Cdigo do ActionPerformed do jButton1 Fonte: Prpria (2013)

O cdigo acima apresentado na tabela Cdigo do ActionPerformed JButton1 traduz muito bem a facilidade de usar um componente e como ele pode ser til e descomplicar a vida do programador, isso porque, voc pode perceber que no foi usado nenhum calculo, uma vez que todo a matemtica est encapsulada no componente Retangulo. Em pequena escala assim, pode no parecer grande coisa, mas para componentes maiores isso vem a ser um diferencial com um grande poder de produtividade. Podemos ver exemplos de componentes capazes de gerar boletos para diversos bancos, enviar e receber remessa e o que o programador tem que fazer apenas passar os dados de cedente, banco, ttulos e outros. Todo o cdigo est encapsulado com o poder de reuso. Veja abaixo o resultado da tela aps preencher os dados da base com 6 e altura com 3, ao clicar sobre o boto calcular, obtivemos o valor 18.

24

Figura 12 - Tela de calculo da rea retngulo Fonte: Prpria (2013)

25

ICONE EM UM JAVABEAN
Quando criamos um JavaBean, precisaremos definir um cone para que tenhamos por completo criado nosso componente. Normalmente quando se cria um componente e usa as tcnicas de herana, que no foram abordados neste artigo, uma vez que essa parte trata-se de tpicos avanadas, tempos o cone herdado do pai que concedeu o comportamento, por esse motivo, como o JavaBean no recebe herana, devemos definir nosso prprio cone. Para definirmos algumas caractersticas do JavaBean, devemos fazer o uso da classe BeanInfo, que est associada ao seu Bean. Caractersticas como cone e outros totalmente configurvel por essa classe. De acordo com a (Oracle, Using a BeanInfo), um BeanInfo uma classe que muda a forma como o componente aparece em uma ferramenta de criao. A ferramenta construtor pode consultar o BeanInfo para descobrir quais as propriedades que deve exibir em primeiro lugar e que deve ser escondido. A classe BeanInfo para o componente deve ter o mesmo nome que a classe principal, com BeanInfo anexado. Por exemplo, a classe Retangulo tem uma classe RetanguloBeanInfo correspondente que descreve. Embora seja possvel implementar uma classe BeanInfo " mo", voc vai achar que muito mais fcil usar uma ferramenta como o NetBeans para editar o BeanInfo. Para iniciarmos a criao da classe BeanInfo atravs do Netbeans, vamos comear clicando com boto direito do mouse sobre a classe do componente, no nosso caso chama-se: Retangulo, conforme imagem abaixo:

26

Figura 13 - Menu suspenso - Editor BeanInfo Fonte: Prpria (2013)

Ao clicar sobre a opo para gerar o BeanInfo, uma caixa de dialogo de confirmao ser solicitada, clique em Sim para confirmar a criao.

Figura 14 - Pergunta - Confirmar criao Fonte: Prpria (2013)

Aps esse processo, uma classe chamada RetanguloBeanInfo ser criada pronta para ser configurada.

27

Figura 15 - View Designer Fonte: Prpria (2013)

Clique sobre o boto View Designer para visualizar a parte visual da classe BeanInfo.

Figura 16 - Designer BeanInfo Fonte: Prpria (2013)

Para alterar o cone, clique sobre o primeiro item da arvore da esquerda chamado BeanInfo, nas propriedades, em Cor 16x16 do cone, clique no boto ... (trs pontinhos) e procure por seu cone. Aps esse processo, basta compilar e estar pronto. Assim como o cone, outras caractersticas tambm podem ser alteradas, basta ir alterando. Lembrando que essas alteraes aparecero no modo designer ao desenvolver.

28

CONSIDERAES FINAIS
Conclumos neste artigo o quo poderoso pode ser um simples componente JavaBeans, principalmente para aprendermos a realizar algo maior. Existem diversas empresas que focam apenas na criao de componentes para as tantas ferramentas espalhadas pelo mundo do desenvolvedor, mas tambm existem projetos pela internet como o ACBr para Delphi e SwingX (aerith, swinglabs, kleopatra, Potochkin, Schaefer, & rah003, 2013) para Java. Outra opo para criao de componentes as tantas necessidades vindas do Governo, como notas de servio, geradores de arquivos Sintegra, sped e outros. Para quem procura componentes especficos para esse fim, especialmente para Java, quase no encontra nada. Isso abre muitas possibilidades e faz com que o componente se fortalea no universo da produtividade do desenvolvimento.

29

BIBLIOGRAFIA
aerith, swinglabs, kleopatra, Potochkin, A., Schaefer, K., & rah003. (26 de 04 de 2013). The Source for Java Technology Collaboration. Acesso em 16 de 03 de 2013, disponvel em swingx.java.net: https://swingx.java.net ANSELMO, F. (2005). Aplicando Lgica Orientada a Objeto em Java (2 ed ed.). Florianpolis: VisualBooks. BERG, A., & FIGUEIR, J. P. (2006). Lgica de programao (3 Edio ed.). Canoas: ULBRA. DALL 'OGLIO, P. (2007). PHP: programao com orientao a objetos. So Paulo: Novatec. FUKS, H., & PIMENTEL, M. (2011). SISTEMAS COLABORATIVOS. PORTO ALEGRE: Elsevier Brasil. GONALVES, E. (2006). Dominando o NetBeans. Rio de Janeiro: Cincia Moderna Ltda. Horstmann, C. (2004). Big Java. Porto Alegre: Bookman. MELO, A. C. (2004). Desenvolvendo aplicaes com UML 2.0 (2 Edio ed.). Rio de Janeiro: Brasport. OLIVEIRA, M. R. (2005). Administrao de Empresa com Access. So Paulo: Digerati Books. Oracle. (2013). Enterprise JavaBeans Technology. Acesso em 06 de 02 de 2013, disponvel em oracle.com: http://www.oracle.com/technetwork/java/javaee/ejb/index.html Oracle. (s.d.). Using a BeanInfo. Acesso em 16 de 02 de 2013, disponvel em docs.oracle.com: http://docs.oracle.com/javase/tutorial/javabeans/writing/beaninfo.html PHP. (2012). What is PHP? Acesso em 04 de 03 de 2012, disponvel em php.net: http://www.php.net/ SCHACH, S. R. (2009). Engenharia de Software - Os Paradigmas Clssico e Orientado a Objetos (7 ed.). Bookman. Xavier, D. W. (2013). Regras e Convenes de Nomenclatura. Acesso em 02 de 03 de 2013, disponvel em tiexpert.net: http://www.tiexpert.net/programacao/java/nomenclatura.php

You might also like