Duvida com TextArea

15 respostas
T

Bom dia.

Estou com uma dúvida com os tais TextArea!!
Seguinte:

Tenho uma Classe Admin() que quando eu seleciono o radiobutton5 e clico em Enviar ele chama a classe Banco().

Código da classe admin deste botão é:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        if (radio5.isSelected()) {
            frm.setProtocolo(TxtNumProt.getText());
            bco.SelecionaProtocolo();

Na classe Banco() tenho o seguinte código:

public Formulario SelecionaProtocolo() {


        String comando = "Select b.Nome, a.ProtocoloID, a.dataRegistro, a.Problema, a.Situacao from tblRegistro a Inner Join tblUsuario b On a.ProtocoloID = ?";

        try {

            Statement stmt = cx.fazConexao().createStatement();
            ResultSet rs = stmt.executeQuery(comando);

            while (rs.next()) {

                String nome = rs.getString("Nome");
                String protocolo = rs.getString("ProtocoloID");
                Date dataRegistro = rs.getDate("dataRegistro");
                String problema = rs.getString("Problema");
                int situacao = rs.getInt("Situacao");


                form.setNome(nome);
                form.setProtocolo(protocolo);
                form.setDataRegistro(dataRegistro);
                form.setProblema(problema);
                form.setSituacao(situacao);

            }
            return form;

        } catch (Exception e) {
        }

        return null;
    }

Eu quero que quando ele clicasse e fizesse esta busca, o valor que foi selecionado…O ponteiro com os valores vão para a classe Relatorios() que contem na verdade apenas um JTextArea que é onde eu iria armazenar todos os dados…

Como posso fazer isso?

15 Respostas

d34d_d3v1l

Não sei se o problema sou eu, mas não entendi o que você quis perguntar!
Poderia reformular?

T

Vamos lá, desculpe qualquer confusão!!

Eu tenho uma classe Admin que chama a classe banco()…como coloquei no código, dentro chama um método que faz um select no meu banco de dados!!
Eu quero que esse select seja exibido em um text area na classe relatorios() que eu tenho APENAS um textarea…exatamente para isso!!

Entendeu?

Admin --> Classe Banco() --> Chama método Select dentro da classe Banco() --> No rs.next() exibir o resultado no relatorios()

Consegui me expressar desta vez?

d34d_d3v1l

Thiago0803:
Vamos lá, desculpe qualquer confusão!!

Eu tenho uma classe Admin que chama a classe banco()…como coloquei no código, dentro chama um método que faz um select no meu banco de dados!!
Eu quero que esse select seja exibido em um text area na classe relatorios() que eu tenho APENAS um textarea…exatamente para isso!!

Entendeu?

Admin --> Classe Banco() --> Chama método Select dentro da classe Banco() --> No rs.next() exibir o resultado no relatorios()

Consegui me expressar desta vez?

Conseguiu sim, eu acho que eu que não soube interpretar direito… Desculpe…

Eu sugiro o seguinte, crie um método dentro de “relatórios()” que fará mais ou menos isso:

public void PreencherText(String texto){
    JTextArea1.setText(texto);
}

Ai quando você pegar o banco os dados que você quer, você adiciona tudo em uma String e envia para esse método…

Veja se é mais ou menos isto que você quer…

Abraços

T

É sim, mais ou menos isso…

mas como eu encaixaria todos esses rs.next() em uma String?

d34d_d3v1l

Thiago0803:
É sim, mais ou menos isso…

mas como eu encaixaria todos esses rs.next() em uma String?

Assim:

String frase = "";
  while (rs.next()) {  
  
                String nome = rs.getString("Nome");  
                String protocolo = rs.getString("ProtocoloID");  
                Date dataRegistro = rs.getDate("dataRegistro");  
                String problema = rs.getString("Problema");  
                int situacao = rs.getInt("Situacao");  

                frase+= nome;
                frase+=" - ";
                frase+= protocolo;
                frase+=" - ";
                frase+= dataRegistro;
                frase+=" - ";
                frase+= problema;
                frase+=" - ";
                frase+= situacao;
                frase+=" - ";              

  
  

            }

ai você “Formata” como voce quiser que mostre lá no seu outro formulário…

entendeu?

T

Okay, aí do meu banco eu chamo:

rel.PreencherText(selecionado);

O nome da minha String é selecionado, mas quando eu chamo a classe ele não me mostra o JFrame né!!
Aih eu coloco

new Relatorios.setVisible(true);

mas nada vai!

d34d_d3v1l

Thiago0803:
Okay, aí do meu banco eu chamo:

rel.PreencherText(selecionado);

O nome da minha String é selecionado, mas quando eu chamo a classe ele não me mostra o JFrame né!!
Aih eu coloco

new Relatorios.setVisible(true);

mas nada vai!

primeiro voce cria o relatório… depois voce envia para ele…depois visivel

rel = new Relatorios(); rel.PreencherText(selecionado); rel.setVisible(true);

T

Parece que ele não está entrando no try{

package Suporte;

import java.sql.*;
import javax.swing.*;

public class Banco {

    Formulario form;
    conexao cx = new conexao();
    Relatorios rel = new Relatorios();

    public Banco() {
        form = FormularioSingle.getInstance();
    }

public Formulario SelecionaProtocolo() {

        String comando = "Select b.Nome, a.ProtocoloID, a.dataRegistro, a.Problema, a.Situacao from tblRegistro a Inner Join tblUsuario b On a.ProtocoloID = ?";

        try {

            Statement stmt = cx.fazConexao().createStatement();
            ResultSet rs = stmt.executeQuery(comando);

            String selecionado = "";
            while (rs.next()) {

                String nome = rs.getString("Nome");
                String protocolo = rs.getString("ProtocoloID");
                Date dataRegistro = rs.getDate("dataRegistro");
                String problema = rs.getString("Problema");
                int situacao = rs.getInt("Situacao");

                selecionado += "Nome: ";
                selecionado += nome;
                selecionado += " - Protocolo: ";
                selecionado += protocolo;
                selecionado += " - dataRegistro: ";
                selecionado += dataRegistro.toString();
                selecionado += " - Problema: ";
                selecionado += problema;
                selecionado += " - Situação: ";
                selecionado += situacao;

                rel.PreencherText(selecionado);
                rel.setVisible(true);

            }
            return form;

        } catch (Exception e) {
        }

        return null;
    }

Do jeito que está aí ele não mostra o rel, mas se eu coloco antes do try ele me mostra!!

T

Mudei a String de select:

String comando = "Select b.Nome, a.ProtocoloID, a.dataRegistro, a.Problema, a.Situacao from tblRegistro a Inner Join tblUsuario b On a.ProtocoloID = '"+ form.getProtocolo() +"'";

Mas continua o problema, só coloquei para consertar!

d34d_d3v1l

Thiago0803:
Mudei a String de select:

String comando = "Select b.Nome, a.ProtocoloID, a.dataRegistro, a.Problema, a.Situacao from tblRegistro a Inner Join tblUsuario b On a.ProtocoloID = '"+ form.getProtocolo() +"'";

Mas continua o problema, só coloquei para consertar!

faça isso dentro do catch:

} catch (Exception e) { e.printStackTrace(); }

ai vc cola a msg do erro que aparecerá aqui…

abraços

T

Ele executou, mas mostra os seguintes erros:

com.microsoft.sqlserver.jdbc.SQLServerException: Conversion failed when converting the varchar value null to data type int.

at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:156)

at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1373)

at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:702)

at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:600)

at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4003)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1550)

at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:160)

at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:133)

at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(SQLServerStatement.java:535)
d34d_d3v1l

Conversão do varchar ‘null’ para o tipo int falhou…

T

Hmm…Imaginei, mas tentei aqui converter e não consigo!!

Na verdade meu Protocolo do BANCO DE DADOS está como int e do Java está como String.
Como faço essa conversão no Java, para receber e/ou mandar certo?

L

CARA ,

para salvar

a conversão de int para string:

cad.setCodigo(Integer.parseInt(txtCodigo.getText()));

e aqui caso tenha consulta:

txtCodigo.setText(new Integer(seguradoTO.getCodigo()).toString());

abrxx

não se é isso que quer ou entendi errado.

T

lokit´s, então…

Eu fiz algumas mudanças, veja se pode ser isso:
Eu mudei meu getProtocolo e setProtocolo para int…era String protocolo, agora é int…

public Formulario SelecionaProtocolo() {

        String comando = "Select b.Nome, a.ProtocoloID, a.dataRegistro, a.Problema, a.Situacao from tblRegistro a Inner Join tblUsuario b On a.ProtocoloID = '"+ form.getProtocolo() +"'";

        try {

            Statement stmt = cx.fazConexao().createStatement();
            ResultSet rs = stmt.executeQuery(comando);

            String selecionado = "";
            while (rs.next()) {

                String nome = rs.getString("Nome");
                int protocolo = rs.getInt("ProtocoloID");
                Date dataRegistro = rs.getDate("dataRegistro");
                String problema = rs.getString("Problema");
                int situacao = rs.getInt("Situacao");

                form.setProtocolo(protocolo);

                selecionado += "Nome: ";
                selecionado += nome;
                selecionado += " - Protocolo: ";
                selecionado += String.valueOf(form.getProtocolo());
                selecionado += " - dataRegistro: ";
                selecionado += dataRegistro.toString();
                selecionado += " - Problema: ";
                selecionado += problema;
                selecionado += " - Situação: ";
                selecionado += situacao;

                rel.PreencherText(selecionado);
                rel.setVisible(true);

            }
            return form;

        }catch (Exception e) {
      e.printStackTrace();
}

        return null;
    }

No código eu fiz a seguinte conversão…Veja se está certo…

Aí quando eu chamo o banco está assim:

frm.setProtocolo(Integer.parseInt(TxtNumProt.getText()));
            bco.SelecionaProtocolo();

**********Corrigindo!!Consegui…
Deste jeito que está deu certo, obrigado.

Se houver algum outro problema eu posto aqui!!

Thanks you for all ;D

Criado 25 de janeiro de 2011
Ultima resposta 26 de jan. de 2011
Respostas 15
Participantes 3