> > De: Carlos Campos <[EMAIL PROTECTED]> > > Para: [EMAIL PROTECTED] > > Cc: [EMAIL PROTECTED] > > Assunto: Handerson, corrija o endere�o para a lista caso eu tenha me > enganado, ok? > > Data: Quarta-feira, 18 de Agosto de 1999 22:45 > > > > Prezados Javaneses, > > > > H� um tempo atr�s enviei minha primeira mensagem para esta Lista, > > solicitando ajuda quanto � possibilidade ou n�o de INTEGRAR os campos de > um > > formul�rio HTML com um APPLET Java. > > > > Na ocasi�o, o nosso considerado Handerson Gomes relatou que j� trabalhava > > com Java h� bastante tempo e desconhecia esta possibilidade, me > solicitando > > que divulgasse para a Lista qualquer novidade de sucesso com rela��o a > este > > assunto. � o que discutiremos a seguir: > > > > Mas qual a vantagem desta integra��o? > > > > Todo mundo que j� testou programas em Java sabe que a Carga de um Applet > > Java ainda � muito lenta se comparada ao c�digo nativo em HTML; sabe > tamb�m > > que n�o � nada tranquilo criar telas com aqueles LAYOUTS infelizes > (embora > > idolatrados por poucos); sabe tamb�m que � poss�vel criar r�pidamente com > > um software do tipo VISUAL PAGE formul�rios em HTML melhor elaborados e > de > > melhor apar�ncia visual. > > > > Para aqueles que desejam, como eu, utilizar uma Programa��o Java > Orientada > > para o Browser, mesclando c�digos em HTML, Applets e Servlets, esta > > possibilidade de integra��o estava se tornando quase uma obsess�o. > > > > Ap�s ralar muito, usando Decompiler nas Bibliotecas de JVM e em alguns > > Applets dispon�veis na NET identifiquei uma solu��o: > > > > Existe uma classe "JSObject" do "Package netscape.javascript" que permite > a > > integra��o do Applet com o DOM - Document Object Model (Window -> > Document > > -> Form -> Element etc) do seu Browser. Mais ainda, esta classe permite > que > > voc� interaja com qualquer vari�vel, fun��o ou m�todo p�blico, seja do > > APPLET JAVA ou do c�digo JAVASCRIPT que estiver definido no seu documento > > HTML. > > > > Testei este recurso com o INTERNET EXPLORER 4.x/5.x e tudo funcionou uma > > BELEZA. Consegui recuperar campos de um formul�rio HTML e atribuir > valores > > de volta sem problema. > > > > Para minha SURPRESA e frustra��o, embora o pacote tenha o nome de > NETSCAPE, > > come�aram a ocorrer os problemas quando testei no NETSCAPE COMMUNICATOR > 4.6 > > : Recebo de cara a "Exception java.lang.NullPointerException". > > > > Embora tenha localizado e recorrido ao site > > http://developer.netscape.com/.../livecon.html e constatado que, > > aparentemente, n�o cometi nenhum erro, mesmo porque funciona bem no > > Internet Explorer, N�O ENTENDI porque o c�digo N�O est� funcionando no NS > > 4.x. > > > > Estou disponibilizando abaixo os respectivos c�digos-fonte do documento > > HTML e do APPLET e solicito AJUDA dos javaneses para desvendar este > pequeno > > MIST�RIO. Eu sei que a pol�tica de seguran�a do NETSCAPE � mais r�gida do > > que a do IEXPLORER mas n�o sei se tem algo a ver. > > > > Outra coisa: Para compilar, � necess�rio acrescentar no CLASSPATH a > > biblioteca JAWS.JAR dispon�vel no JRE 1.2 e, evidentemente, usar JDK 1.2 > ou > > superior. Para que o Applet HABILITE a comunica��o com o Java Plugin > tamb�m > > � necess�rio que o autor do documento HTML autorize o acesso definindo um > > par�metro MAYSCRIPT com valor TRUE. > > > > Ficou um pouco longo mas inevit�vel... > > > > Um grande abra�o � todos e conto com a colabora��o de voc�s para a > solu��o > > do problema. > > > > Carlos Campos > > [EMAIL PROTECTED] > > MCT/CNPq/CETEM > > 55 21 5607222 Ext. 358 > > > > ======================================================================= > > > > C�DIGO DO DOCUMENTO HTML: > > > > <html> <head></head><body> > > > > <br> > > <FORM name="form1"> > > <TABLE> > > <tr><td>Seu Logon :</td><td><INPUT type="TEXT" name="logon" > > value="Carlos"></td></tr> > > <tr><td>Sua Password : </td><td><INPUT type="TEXT" name="password" > > value="Andr�"></td></tr> > > <tr><td></td> > > </table> > > </FORM> > > > > <br> > > <hr> > > <br> > > <applet code=Formulario.class width=572 height=500> > > <param name="MAYSCRIPT" value="true"> > > </applet> > > > > </body> > > </html> > > > > > > ======================================================================= > > > > C�DIGO-FONTE DO APPLET: > > > > > > import java.awt.*; > > import java.awt.Graphics; > > import java.awt.event.*; > > import java.applet.*; > > import java.net.*; > > import java.io.*; > > import netscape.javascript.*; > > > > public class Formulario extends Applet { > > > > JSObject win,doc,f_form1,e_logon,e_password; > > String cp_logon,cp_password; > > > > TextField Txt_Logon = new TextField("Carlos",50); > > TextField Txt_Password = new TextField("Andr�",50); > > TextField Txt_Msg = new TextField("",50); > > > > Button Btn_Ok = new Button("Ok"); > > > > public void init() { > > > > try { > > > > win = JSObject.getWindow(this); > > doc = (JSObject)win.getMember("document"); > > f_form1 = (JSObject)doc.getMember("form1"); > > e_logon = (JSObject)f_form1.getMember("logon"); > > e_password = (JSObject)f_form1.getMember("password"); > > } > > catch(Exception e) { > > showStatus("Falha de Comunica��o com o Formul�rio! = Erro: " + > > e.toString()); > > Txt_Msg.setText("Erro 01 : " + e.toString()); > > } > > > > > > this.setLocation(new Point(0,0)); > > this.setSize(572,500); > > this.setBackground(Color.white); > > > > this.add(Txt_Logon); > > this.add(Txt_Password); > > this.add(Txt_Msg); > > this.add(Btn_Ok); > > > > Btn_Ok.addActionListener(new BTNOK()); > > } > > > > // Controla Bot�o <OK> de mensagem do Applet > > class BTNOK implements ActionListener { > > public void actionPerformed(ActionEvent e) { > > try { > > cp_password="Carlos e Vicentina"; > > > > e_password.setMember("value",cp_password); > > cp_logon = (String)e_logon.getMember("value"); > > > cp_password = (String)e_password.getMember("value"); > > > Txt_Msg.setText("Logon = " + cp_logon + " & Password >= " + > > cp_password); > > } > > catch(Exception ex) { > > showStatus("Falha de Comunica��o com o Formul�rio! = Erro: " + > > ex.toString()); > > Txt_Msg.setText("Erro 02 : " + ex.toString()); > > } > > } > > } > > > > > > } > > > > > > ======================================================================= > > * Para n�o receber mais e-mails desta lista envie um e-mail para [[EMAIL PROTECTED]] e no corpo do email escreva [unsubscribe <seu-email>]
