Não lê as linhas seguintes do programa

5 respostas
C

Olá,

Estou com problemas na execução de um programa… ele lê até uma parte e mostra as mensagens, no entanto não continua a ler o resto do programa… o q pode estar acontecendo?

Pedaço do programa:

1-  output.append("Chamando Class.forName

");

2-  Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);

3-   output.append("Chamando DriverManager

");

4-   con = DriverManager.getConnection(jdbc:odbc:Dados_VRML);

5-   output.append("Terminado o DriverManager

");

Agradeço qualquer ajuda

Carol

5 Respostas

D

Passa todo o código da classe!!!

C

Aí vai o código:

import java.applet.<em>;

import java.awt.</em>;

import java.util.<em>;

import java.lang.</em>;

import java.sql.*;
import vrml.external.field.<em>;

import vrml.external.exception.</em>;

import vrml.external.Node;

import vrml.external.Browser;

public class BallGrow extends Applet {

Browser browser;
Node root;
EventInSFVec3f set_scale;
EventInSFVec3f set_translation;

float esc[] = {1, 1, 1};

java.awt.Scrollbar scalex;
java.awt.Scrollbar scaley;
java.awt.Scrollbar scalez;
java.awt.Scrollbar transx;
java.awt.Scrollbar transy;
java.awt.Scrollbar transz;

Button resetButton;
Button setaValor;

TextArea output = null;

Connection con;
Statement st;
ResultSet rs;

boolean bConectado = false;

float[] initScale = new float[3];
float[] initTrans = new float[3];

public void init ()
{
    setBackground(new Color(0xd9d9d9));

    add(new java.awt.Label("FeedBack Information:"));
    output = new TextArea(5, 40);
    add(output);
    add(resetButton = new Button("RESET"));
    add(setaValor = new Button("Novo Valor"));

    Panel scalePanel = new Panel ();
    scalePanel.setLayout (new GridLayout (3,2));

    scalePanel.add(new java.awt.Label("X-Scale:             "));
    scalePanel.add(scalex =
    	   new java.awt.Scrollbar(0, 10, 10, 1, 100));
    scalePanel.add(new java.awt.Label("Y-Scale:             "));
    scalePanel.add(scaley =
    	   new java.awt.Scrollbar(0, 10, 10, 1, 100));
    scalePanel.add(new java.awt.Label("Z-Scale:             "));
    scalePanel.add(scalez =
    	   new java.awt.Scrollbar(0, 10, 10, 1, 100));


    Panel transPanel = new Panel ();
    transPanel.setLayout (new GridLayout (3,2));

    transPanel.add(new java.awt.Label("X-Translation:      "));
    transPanel.add(transx =
    	   new java.awt.Scrollbar(0, 10, 10, -100, 100));
    transPanel.add(new java.awt.Label("Y-Translation:      "));
    transPanel.add(transy =
    	   new java.awt.Scrollbar(0, 10, 10, -100, 100));
    transPanel.add(new java.awt.Label("Z-Translation:      "));
    transPanel.add(transz =
    	   new java.awt.Scrollbar(0, 10, 10, -100, 100));

    add (scalePanel);
    add (transPanel);

    initTrans[0] = 0.0f; initTrans[1] = 0.0f; initTrans[2] = 0.0f;
    initScale[0] = 1.0f; initScale[1] = 1.0f; initScale[2] = 1.0f;


    browser = Browser.getBrowser(this);

    try
    {
      root = browser.getNode("ROOT");
      output.appendText("Peguei root :)

");

set_scale = (EventInSFVec3f) root.getEventIn("scale");
      output.appendText("Peguei set_scale :)

");

set_translation = (EventInSFVec3f) root.getEventIn("translation");
      output.appendText("Peguei set_translation :)
");

}

catch (InvalidNodeException e)

{

output.appendText("PROBLEMS!: " + e + "

");

}

catch (InvalidEventInException e)

{

output.appendText("PROBLEMS!: " + e + "

");

}
}

public boolean handleEvent (Event event)
{
	if (event.target instanceof Scrollbar)
  	{
		Scrollbar bar = (Scrollbar) event.target;

		if ((bar == scalex) ||
		    (bar == scaley) ||
		    (bar == scalez))
		{
		    float[] val = new float[3];

		    val[0] = ((float) scalex.getValue()) / 10.0f;
		    val[1] = ((float) scaley.getValue()) / 10.0f;
		    val[2] = ((float) scalez.getValue()) / 10.0f;

		    output.appendText("Set Scale Value:" + " x=" + val[0] + " y=" + val[1] + " z=" + val[2] + "
");

set_scale.setValue(val);

}

else

{

if ((bar == transx) ||

(bar == transy) ||

(bar == transz))

{

float[] val = new float[3];
val[0] = ((float) transx.getValue()) / 10.0f;
                                                  val[1] = ((float) transy.getValue()) / 10.0f;
		      val[2] = ((float) transz.getValue()) / 10.0f;

		      output.appendText("Set Trans Value:" + " x=" + val[0] + " y=" + val[1] + " z=" + val[2] + "
");

set_translation.setValue(val);

}

}
return true;
	}
  else
  {
		if (event.target instanceof Button)
    	{
	  		Button b = (Button)   
                                                            event.target;
       		  		if (b == resetButton)
			{
	      		set_scale.setValue(initScale);
	      		set_translation.setValue(initTrans);
	    	}
	    	if (b == setaValor)
	    	{
			    float[] val = new float[3];

                if (!bConectado)
                {
                    bConectado = true;
                    output.append("Tentando criar os dados:
");

conecta();

}

val[0] = (01.0f);

val[1] = buscaValor();

val[2] = (01.0f);
output.appendText("Set Scale Value:" + " x=" + val[0] + " y=" + val[1] + " z=" + val[2] + "
");

set_scale.setValue(val);

}

return true;

}

}

return super.handleEvent(event);

}
public void conecta()

{

output.append("Criando serviço de dados

");

try

{

output.append("Chamando Class.forName

");

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

output.append("Chamando DriverManager

");

con = DriverManager.getConnection(“jdbc:odbc:Dados_VRML);

output.append("Terminado o DriverManager

");

}

catch (Exception expE)

{

output.append("Erro geral:

");

output.append(expE.getMessage() + "

");

}
output.append("

Criando objetos de conexão

");

try

{

st = con.createStatement();

rs = st.executeQuery(“select * from tbValores order by indice”);

}

catch (SQLException sqlE)

{

output.append("Erro com a consulta SQL:

");

output.append(sqlE.getMessage());

}

catch (Exception E)

{

output.append("Erro Geral ao criar Statement:

");

output.append(E.getMessage() + "

");

}

}
public float buscaValor()

{

try

{

if (rs.next())

{

return (rs.getFloat(“valor”));

}

else

{

try

{

rs = st.executeQuery(“select * frm tbValores order by indice”);

}

catch (SQLException sqlE)

{

output.append("Erro ao acessar os dados:

");

output.append(sqlE.getMessage() + "

");

}

return ((float)(0.00));

}

}

catch (SQLException sqlE)

{

output.append("Erro ao acessar os dados:

");

sqlE.printStackTrace();

return ((float)(0.00));

}

}

}

D

Olá Carol,

Vamos em partes:

É gerado alguma exceção?
Qual é o estado do programa após chegar no ponto crítico( Ativo ou é finalizado ).

Dica.: Use apenas o método append() pois appendText() está deprecated.

Não tenho como ver em detalhes pois não tenho como compilar e executar o programa devido ao uso de bibliotecas externas.

C

Olá…

Bom… este programa é para funcionar da seguinte forma: através de um gráfico gerado em VRML (linguagen de realidade virtual) é mostrado um gráfico de barras (coloquei uma barra para testar), então seu tamanho pode ser alterado através de barras de rolagem ou através de informações de banco de dados (tem um botão para cada opção).

A parte das barras de rolagem está ok. O problema está quando quero buscar informações de um banco de dados, pois existe um botão separado para isso, é aí que o programa executa até a parte output.append(“Chamando DriverManager” ) ;
depois pára… e o servidor java fecha o socket. A parte do programa que não precisa da conexão para funcionar continua funcionando. Esta conexão é para utilizar dados de um banco de dados.

Obrigada pela ajuda

cv1

A menos que vc assine o applet (busque aqui no GUJ sobre isso), vc nao vai conseguir conectar a nenhum banco de dados, por restrições de segurança.

Criado 3 de setembro de 2003
Ultima resposta 5 de set. de 2003
Respostas 5
Participantes 3