Olá,
Alguém sabe como chamar um programa java dentro de outro?
Estou com um problema… fiz um programa para inserir e pegar dados de um
bd, e outro programa para mostrar indormações em vrml. No entanto preciso
enviar as informações q peguei no primeiro programa e enviar para o vrml
atrvés do segundo programa. Já tentei fazer em um só código, mas gera erro de conexão com o bando de dados… por isso pretendo fazer em programas separados e através do segundo programa enviar os dados do bd para o vrml…
:-o
Chamando um programa java
C
4 Respostas
A
Não tem como importar o primeiro programa através de suas classes?
Importa o 1o programa no segundo e instancie-o como um objeto, executando seus métodos através desse objeto!
C
como fazer essa importação? qual o código?
segue os programas:
// programa q envia e recebe informações para o banco de dados
import java.sql.<em>;
public class testegraficoa
{
public static void main (String args [])
{
int i;
float numero;
String comando;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException cnfe)
{
System.out.println("Problemas com o Class.forName");
System.exit(1);
}
try
{
Connection con = DriverManager.getConnection("jdbc:odbc:barra_odbc");
Statement st = con.createStatement();
// Isto é para evitar ter que entra toda hora no sgdb para limpar o banco
st.executeUpdate("delete from ValorBarra");
for (i = 1; i <= 100; i++){
numero = (float) (Math.random()<em>100);
comando = "Insert Into ValorBarra values (" + i + ", " + numero + ")";
st.executeUpdate(comando);
}
ResultSet rs = st.executeQuery("select * from ValorBarra");
while (rs.next())
{
System.out.print(rs.getString("codigo")+ "-");
System.out.println(rs.getString("numero"));
}
st.close();
con.close();
}
catch(SQLException sqle)
{
System.out.println("Problemas com SQL");
System.err.println(sqle);
sqle.printStackTrace();
System.exit(1);
}
}
}
//programa que recebe informações do testegrafioa.java e envoa para um programa vrml
import java.awt.</em>;
import java.util.</em>;
import java.awt.event.<em>;
import vrml.</em>;
import vrml.node.<em>;
import vrml.field.</em>;
public class Escala extends Script
{
private SFVec3f novaEscala;
private SFFloat timeStamp;
// 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");
System.out.println("initialize - end ");
}
public void set_escala(){
testegrafico bd = new testegrafico();
bd.metodo();
novaEscala.setValue(esc);
}
public void processEvent(vrml.Event e){
// System.out.println("Valor: " + esc[1]);
// esc [1] = (float) (Math.random()*10);
set_escala();
}
}
OBS: já tentei fazer tuto em um só código… não funciona… :-W
R
carol…
vc pode criar a instancia da classe que vc deseja na classe que quer usa-la…depois eh soh chamar os metodos que vc fez na classe instanciadaNão sei se resolve…
ate mais… 
A
Bom, dando uma rápida olhada, não sei te dizer porque não funciona tudo em um único código, mas a solução que eu propus é a que se segue:
Primeiramente, tu deves transformar o 1o código em um objeto. Para isso você deve fazer duas coisas.
- Crie um construtor que nao faz nada: public testegraficoa() {}
- Transforme o método main em um método que retorna um valor (para futuramente ser invocado pelo segundo código). Como, não entendi o funcionamento do 2o código, digamos que ele retorne uma String.
Teu código ficaria mais ou menos assim:
| Code: |
|
Para finalizar esse passo, compile essa classe.
O próximo passo é modificar o segundo código para ele criar uma instância do objeto que tu criaste no passo 1 e invoar o método meuMetodo(), dessa forma:
insira a linha:
import testegraficoa;
junto com os outros imports!
Como eu não entendi como esse código utiliza as informações do primeiro, coloque o instanciamento do objeto onde tu precisar das informações…
| Code: |
|
Bom, se tu nao entendeste algum desses passos, dê uma estudada em orientação a objetos, mas nao hesite em perguntar se precisar!
Espero ter ajudado!
Andre
Criado 21 de março de 2003
Ultima resposta 23 de mar. de 2003
Respostas 4
Participantes 3
Alura Sistemas operacionais: entenda seu conceito e suas funções Descubra o que são sistemas operacionais, suas funções e tipos. Aprenda tudo de forma clara e objetiva. Não perca tempo!
Casa do Codigo Orientacao a Objetos: Aprenda seus conceitos e suas... Por Thiago Leite e Carvalho — Casa do Codigo