O qua há de errado com este código

2 respostas
A

Estou com um problema e acho que no tópico que eu passei de manhã eu não me expressei direito vou tentar fazer isto agora.

O código abaixo faz uma conexão com o banco de dados em PostGreSql e mostra na tela um formulário com um Botão, um Label e um TXT, o meu objetivo é o de Clicar no Botão e quando fizer isto, aparecer no TXT o ultimo Código do Primeiro registro da tabela, na verdade eu preciso depois fazer os botões de navegação da tabela, isto não está funcionando quando eu clico no botão ele me  este monte de erros.....

///////////////////////////////////////////////////////////////////////////////////

java.lang.NullPointerException

at JthM002Jt$1.mouseClicked(JthM002Jt.java:105)

at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)

at java.awt.Component.processMouseEvent(Unknown Source)

at java.awt.Component.processEvent(Unknown Source)

at java.awt.Container.processEvent(Unknown Source)

at java.awt.Component.dispatchEventImpl(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Window.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

/////////////////////////////////////////////////////////////////////////////////
Espero ter conseguido explicar minha dúvida agora, o código é este abaixo.
/////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////

////Importa os paotes necessários

import java.awt.<em>;

import java.awt.event.</em>;

import java.io.FileNotFoundException;
import java.io.IOException;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import javax.swing.*;

import sun.rmi.transport.Connection;

/** Classe

  • [ coloque aqui a descrição da classe ]

  • @author Fernando Anselmo © Jul - 2005

  • @version 1.0
    */
    public class JthM002Jt extends JFrame {
    Connection db; // Conexão com o servidor de banco de dados
    Statement st; // Declaração para executar os comandos

    public void go() throws ClassNotFoundException, FileNotFoundException,
    
    IOException, SQLException {
    
    // Banco de dados, usuário e senha igual a teste
    
    // CREATE USER teste WITH password teste;
    
    // CREATE DATABASE teste WITH OWNER teste ENCODING LATIN1;
    
    String url = jdbc:postgresql://localhost/Jethro?charSet=Jethro;
    
    String usr = postgres;
    
    String pwd = pgadmin;
    
    // Carregar o driver 
     Class.forName("org.postgresql.Driver"); 
    
     // Conectar com o servidor de banco de dados 
     System.out.println("Conectando ao banco de dados\nURL = " + url); 
     db = (Connection) DriverManager.getConnection(url, usr, pwd); 
    
     // Fechar a conexão 
     System.out.println("Fechando a conexão"); 
     st.close(); 
     db.close();
    

    }

    // Bloco 1 - Dados dos Objetos da Janela
    private JButton Bt_Primeiro;

    // Bloco 1 - Dados dos Objetos da Janela
    
    private JLabel objeto1;
    
    private JTextField TXT_CodigoParceiro;
    
    public JthM002Jt() {
    
    try {
    
    mostra();
    
    } catch (Exception ex) {
    
    ex.printStackTrace();
    
    }
    
    }
    
    private void mostra() {
    
    //Icones Utilizados
    
    // Bloco 2 - Dados da Criação da Janela
    
    this.getContentPane().setLayout(null);
    
    this.getContentPane().setBackground(new Color(204, 204, 204));
    
    this.setSize(656, 400);
    
    this.setLocation(100, 113);
    
    this.setTitle("Jethro - [JthM001Jt - 01.01] Manutenção da Tabela de Parceiros ");
    
    this.setResizable(false);
    
    // Bloco 3 - Dados da Criação dos Controles na Janela 
     //////CODIGO DO PARCEIRO 
     objeto1 = new JLabel("Codigo:"); 
     objeto1.setBounds(new Rectangle(5, 83, 57, 13)); 
     this.getContentPane().add(objeto1, null); 
     TXT_CodigoParceiro = new JTextField(); 
     TXT_CodigoParceiro.setBounds(new Rectangle(70, 75, 100, 21)); 
     this.getContentPane().add(TXT_CodigoParceiro, null); 
     //Botões do Painel de Navegação 
     Icon Anterior = new ImageIcon("C:/Dsystem/Img/Java/Bt_Anterior_Lig.JPG"); 
     //Primeiro Registro 
     Icon Inicio = new ImageIcon("C:/Dsystem/Img/Java/Bt_Inicio_Lig.JPG"); 
    
     Bt_Primeiro = new JButton(""); 
     Bt_Primeiro.setIcon(Inicio); 
     Bt_Primeiro.setBounds(new Rectangle(003, 7, 55, 55)); 
     this.getContentPane().add(Bt_Primeiro, null); 
     //////////////////////////////////////////////////////////////////////////////////// 
     ////MINHA INTENÇÃO NESTE PONTO É EXECYTAR O RESULT SET DE FORMA QUE //////////////// 
     ////ELE ME COLOQUE O RESULTADO NO txt_cODIGOpARCEIRO//////////////////////////////// 
     //////////////////////////////////////////////////////////////////////////////////// 
     //////////////////////////////////////////////////////////////////////////////////// 
    
     Bt_Primeiro.addMouseListener(new MouseAdapter() { 
     		public void mouseClicked(MouseEvent e) { 
     			// Chamada a um método 
     			Statement st = null; // Declaração para executar os comandos 
    
     			try { 
     				char Virgula = ','; 
     				char Aspas = '"'; 
     				String Str = "select * from " + Aspas + 
     					"Representante" + Aspas; 
     				ResultSet rs = st.executeQuery(Str); 
    
     				TXT_CodigoParceiro.setText(Str); 
     			} catch (SQLException e1) { 
     				// TODO Auto-generated catch block 
     				e1.printStackTrace(); 
     			} 
    
     		} 
     	}
     );
    

    }

    /**

    • @param adapter
      */

    // Insira aqui os métodos para os eventos

    public static void main(String args[]) {
    new JthM002Jt().show();

    }
    
    }
    
    /////////////////////////////////////////////////////////////////////////////////
    
    /////////////////////////////////////////////////////////////////////////////////
    
    /////////////////////////////////////////////////////////////////////////////////
    
    /////////////////////////////////////////////////////////////////////////////////
    
    /////////////////////////////////////////////////////////////////////////////////
    

2 Respostas

R

cara esse erro é pq vc tem algo nulo no seu código... no caso acredito que seja o statement, pois vc o inicializa com null e não seta o statement...

Statement st = null; // Declaração para executar os comandos

try &#123;
char Virgula = ',';
char Aspas = '&quot;';
String Str = &quot;select * from &quot; + Aspas +
&quot;Representante&quot; + Aspas;
ResultSet rs = st.executeQuery&#40;Str&#41;;

TXT_CodigoParceiro.setText&#40;Str&#41;;
&#125; catch &#40;SQLException e1&#41; &#123;
// TODO Auto-generated catch block
e1.printStackTrace&#40;&#41;;
&#125;

T+

PS: Utilize BBCode em seu código. :wink:

C
Primeiro cara faz uma identação

olha neste site <a href="http://www.imasters.com.br/artigo.php?cn=2444&cc=15">http://www.imasters.com.br/artigo.php?cn=2444&cc=15</a>

eu inicializei a variavel

[color=red]import java.awt.<em>;

import java.awt.event.</em>;

import java.io.FileNotFoundException;
import java.io.IOException;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import javax.swing.*;

import sun.rmi.transport.Connection;

/** Classe

  • [ coloque aqui a descrição da classe ]

  • @author Fernando Anselmo © Jul - 2005

  • @version 1.0
    */
    public class JthM002Jt extends JFrame
    {
    Connection db; // Conexão com o servidor de banco de dados
    Statement st; // Declaração para executar os comandos

    public void go() throws ClassNotFoundException, FileNotFoundException,IOException, SQLException
    
    {
    
    // Banco de dados, usuário e senha igual a teste
    
    // CREATE USER teste WITH password teste;
    
    // CREATE DATABASE teste WITH OWNER teste ENCODING LATIN1;
    
    String url = jdbc:postgresql://localhost/Jethro?charSet=Jethro;
    
    String usr = postgres;
    
    String pwd = pgadmin;
    
    // Carregar o driver 
      Class.forName("org.postgresql.Driver"); 
      
      // Conectar com o servidor de banco de dados 
      System.out.println("Conectando ao banco de dados\nURL = " + url); 
      db = (Connection) DriverManager.getConnection(url, usr, pwd); 
      
      // Fechar a conexão 
      System.out.println("Fechando a conexão"); 
      st.close(); 
      db.close(); 
      } 
    
    // Bloco 1 - Dados dos Objetos da Janela
    
    private JButton Bt_Primeiro;
    <pre><code>  // Bloco 1 - Dados dos Objetos da Janela
    
    private JLabel objeto1; private JTextField TXT_CodigoParceiro; public JthM002Jt() { try { mostra(); } catch (Exception ex) { ex.printStackTrace(); } } private void mostra() { //Icones Utilizados // Bloco 2 - Dados da Criação da Janela this.getContentPane().setLayout(null); this.getContentPane().setBackground(new Color(204, 204, 204)); this.setSize(656, 400); this.setLocation(100, 113); this.setTitle("Jethro - [JthM001Jt - 01.01] Manutenção da Tabela de Parceiros "); this.setResizable(false);
    // Bloco 3 - Dados da Criação dos Controles na Janela 
      //////CODIGO DO PARCEIRO 
      objeto1 = new JLabel("Codigo:"); 
      objeto1.setBounds(new Rectangle(5, 83, 57, 13)); 
      this.getContentPane().add(objeto1, null); 
      TXT_CodigoParceiro = new JTextField(); 
      TXT_CodigoParceiro.setBounds(new Rectangle(70, 75, 100, 21)); 
      this.getContentPane().add(TXT_CodigoParceiro, null); 
      //Botões do Painel de Navegação 
      Icon Anterior = new ImageIcon("C:/Dsystem/Img/Java/Bt_Anterior_Lig.JPG"); 
      //Primeiro Registro 
      Icon Inicio = new ImageIcon("C:/Dsystem/Img/Java/Bt_Inicio_Lig.JPG"); 
    
      Bt_Primeiro = new JButton(""); 
      Bt_Primeiro.setIcon(Inicio); 
      Bt_Primeiro.setBounds(new Rectangle(003, 7, 55, 55)); 
      this.getContentPane().add(Bt_Primeiro, null); 
      //////////////////////////////////////////////////////////////////////////////////// 
      ////MINHA INTENÇÃO NESTE PONTO É EXECYTAR O RESULT SET DE FORMA QUE //////////////// 
      ////ELE ME COLOQUE O RESULTADO NO txt_cODIGOpARCEIRO//////////////////////////////// 
      //////////////////////////////////////////////////////////////////////////////////// 
      ////////////////////////////////////////////////////////////////////////////////////
    
    Bt_Primeiro.addMouseListener ( new MouseAdapter() { public void mouseClicked(MouseEvent e) { // Chamada a um método
    try 
      				{
      				Statement st = DriverManager.getConnection("jdbc:postgresql://localhost/Jethro?charSet=Jethro").createStatement(); // Declaração para executar os comandos  
      				char Virgula = ','; 
      				char Aspas = '"'; 
      				String Str = "select * from " 
      				+ Aspas + 
      				"Representante" 
      				+ Aspas; 
      				ResultSet rs = st.executeQuery(Str); 
      				TXT_CodigoParceiro.setText(Str); 
      				} 
      			catch (SQLException e1) 
      				{ 
      				// TODO Auto-generated catch block 
      				e1.printStackTrace(); 
      				} 
      		
      			} 
      	} 
      );
    
} /**
  • @param adapter */
// Insira aqui os métodos para os eventos
public static void main(String args[]) 
	{ 
	new JthM002Jt().show(); 
	} 
}
[/color]
Criado 2 de agosto de 2005
Ultima resposta 2 de ago. de 2005
Respostas 2
Participantes 3