Olá, Os dois programas em Java compilam, no
entanto não estão funcionando.... o
que pode estar acontecendo? // dados.java
– programa que insere e apresenta
valores do bd import java.sql.*; public class dados{ private
Connection con; private
Statement st; private
ResultSet rs; private
int nIndice = 1; public
boolean criaConexao(){ boolean
lRetorno; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException
e){ System.out.println("Um erro ocorreu na conexão:"); System.exit(1); lRetorno
= false; } try{ con
= DriverManager.getConnection("jdbc:odbc:barra_odbc"); st
= con.createStatement(); preencheTabelas(); lRetorno
= true; } catch
(SQLException eSQL){ System.out.println("Erro
na conexão "); System.exit(1); lRetorno = false; } return
(lRetorno); } public void preencheTabelas(){ int i; float
numero; String
comando; try{ st.executeUpdate("delete
from ValorBarra"); for
(i = 1; i <= 100; i++){ numero
= (float) (Math.random()*100); comando
= "Insert Into ValorBarra values (" + i + ", " + numero +
")"; st.executeUpdate(comando); } } catch
(SQLException e){ System.out.println("Erro ao pesquisar nas tabelas"); System.exit(1); } } public
float pegaValor(){ try{ rs
= st.executeQuery("select numero from ValorBarra where codigo = " +
nIndice); if
(nIndice > 100) nIndice
= 1; else nIndice++; return
((new Float(rs.getString("numero").trim())).floatValue()); } catch
(SQLException eSQL){ System.out.println("Erro ao pesquisar o valor da barra"); System.exit(1); return
(0); } } } //Escala.java - programa que
pega os valores de dados.java e envia para serem
apresentados em um programa de realidade virtual VRML import java.awt.*; import java.util.*; import java.awt.event.*; import vrml.*; import vrml.node.*; import vrml.field.*; // nova
classe que eu criei; import dados; //import
testegraficoa; public class Escala extends Script { private SFVec3f
novaEscala; private SFFloat
timeStamp; private boolean conectado; private dados
oDados = new dados(); // Variáveis de controle do Java que são
associadas aos tipos do VRML // Para cada nó VRML há uma função Java que
copia o valores float esc[] = {1,
1, 1}; // Lista de eventos que o Cortona envia para
o Java quando o nó // Script do VRML é acionado static String[]
eventos = {"novaEscala", "timeStamp"}; // Obtém os valores iniciais da cena VRML // É chamado quando nó Script é criado // Cada um dos campos recebe os valores
iniciais definidos na cena public void initialize
(){ System.out.println("initialize - begin
"); novaEscala = (SFVec3f) getEventOut ("novaEscala"); timeStamp =
(SFFloat) getEventOut ("timeStamp"); conectado =
oDados.criaConexao(); if
(!conectado){ System.out.println("Não foi possível conectar-se ao
banco!"); System.exit(1); } System.out.println("initialize - end
"); } public void
set_escala(){ //testegraficoa bd = new
testegraficoa(); //bd.pegaDados(); esc[1] = (float)
oDados.pegaValor(); novaEscala.setValue(esc); } public void
processEvent(vrml.Event e){ set_escala(); } } Programa de
em VRML: #VRML V2.0 utf8 DEF G1
Group { children [ DEF
NO Transform { scale
1 1 1 children
[ Shape
{ appearance
Appearance { material
DEF SphereColor Material { diffuseColor
1 0 0 } } geometry
Box {} } ] } Transform
{ translation 3 3 3 children
[ Shape
{ appearance
Appearance { material
Material { diffuseColor
0 1 0 } } geometry
Box { size 1 1 1 } } ] } ] } DEF S Script{ eventIn SFFloat timeStamp eventOut
SFVec3f novaEscala url "Escala.class" } DEF tempo
TimeSensor { enabled TRUE startTime 0 loop TRUE } #Temporizador
para representar movimento na cena ROUTE tempo.fraction_changed TO S.timeStamp ROUTE S.novaEscala TO NO.scale Carolina V. Buk |
<<image001.jpg>>