Boa Tarde à Todos,
Este código está compilando normalmente, mas não executa..aparece esta mensagem:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at classpr.ExibeCampos(classpr.java:462)
at classpr.initComponents(classpr.java:82)
at classpr.<init>(classpr.java:54)
at classpr$1.run(classpr.java:335)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)EXECUTADO COM SUCESSO (tempo total: 2 segundos)
Eu não faço idéia do que pode ser...Alguém pode me ajudar???
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.WindowConstants;
public class classpr extends JFrame implements ActionListener
{
// Declaração de variáveis
private JButton BAnterior, BAvanca10, BComfirmar, BFim, BInicio, BProximo, BSair, BVolta10;
private JTextField FAssuntoP, FDataP, FDestinoP, FNumCI, FOrigemP, FSolicitante;
private JLabel LAssuntoP, LDataP, LDestinoP, LNumCI, LOrigemP, LSolicitante;
private JRadioButton REditar, RVisualizar, RImprimir;
private ButtonGroup grupo;
private JMenuBar BarraMenu;
private JMenu MArquivo, MEditar, MSobre;
private JMenuItem INovo, ISair, ICad;
private JScrollPane SpaneP;
private JTextArea TextareaP;
private ImageIcon NOVO;
ResultSet consulta;
Statement InstrucaoSQL;
// Fim da declaração de variáveis
public classpr ()
{
super ("Titulo");
initComponents ();
}
private void initComponents ()
{
String URL = "jdbc:odbc:Banco";
//A conexão pode falhar
try
{
// define o carregamento do driver para o banco de dados em Access
Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
// cria a conexão com a URL do banco de dados
Connection ConexaoBanco = DriverManager.getConnection (URL);
// cria um objeto para permitir a execução de uma instrução SQL
InstrucaoSQL = ConexaoBanco.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
consulta = InstrucaoSQL.executeQuery("SELECT * FROM cadastro2007");
// posiciona o ResultSet no primeiro registro
consulta.first();
// executa o método ExibeCampos para atualizar os dados na GUI
ExibeCampos();
// informa ao usuário que a conexão foi bem sucedida
msg ("A conexão do Banco de Dados foi bem sucedida...");
//Fecha a conexão com o banco de dados
ConexaoBanco.close ();
}
// trata erro se o driver para o banco de dados não for encontrado
catch(ClassNotFoundException erro)
{
msg ("O driver para o banco de dados não foi encontrado!\n Informe o problema ao Administrador do sistema.");
System.exit (0);
}
// trata erro se houver algum erro de conexão com o banco de dados
catch(SQLException erro)
{
msg ("Não foi possível conectar com o banco de dados!\nInforme o problema ao Administrador do sistema.");
System.exit (0);
}
FNumCI = new JTextField ();
FDataP = new JTextField ();
LNumCI = new JLabel ();
LSolicitante = new JLabel ();
SpaneP = new JScrollPane ();
TextareaP = new JTextArea ();
LDataP = new JLabel ();
FSolicitante = new JTextField ();
BAnterior = new JButton ();
BProximo = new JButton ();
LAssuntoP = new JLabel ();
LOrigemP = new JLabel ();
LDestinoP = new JLabel ();
FAssuntoP = new JTextField ();
FOrigemP = new JTextField ();
FDestinoP = new JTextField ();
BInicio = new JButton ();
BFim = new JButton ();
BAvanca10 = new JButton ();
BVolta10 = new JButton ();
RVisualizar = new JRadioButton ();
REditar = new JRadioButton ();
RImprimir = new JRadioButton ();
grupo = new ButtonGroup ();
BComfirmar = new JButton ();
BSair = new JButton ();
BarraMenu = new JMenuBar ();
MArquivo = new JMenu ("Arquivo");
MEditar = new JMenu ("Editar");
MSobre = new JMenu ("Sobre");
NOVO = new ImageIcon ("NOVO.gif");
INovo = new JMenuItem ("Nova Consulta", NOVO);
ISair = new JMenuItem ("Sair do Sistema");
ICad = new JMenuItem ("Cadastrar CI");
getContentPane ().setLayout (null);
getContentPane ().setBackground (new Color (230,230,225));
setDefaultCloseOperation (WindowConstants.EXIT_ON_CLOSE);
setSize (773,455);
setResizable (false);
setLocation (150,100);
LNumCI.setText ("Número :");
LNumCI.setFont (new Font ("Verdana", Font.BOLD|Font.PLAIN, 11));
getContentPane ().add (LNumCI);
LNumCI.setBounds (10, 10, 80, 14);
FNumCI.setBackground (Color.WHITE);
FNumCI.setFont (new Font ("Verdana", Font.BOLD|Font.PLAIN, 12));
FNumCI.setForeground (Color.BLUE);
FNumCI.setEditable (false);
getContentPane ().add (FNumCI);
FNumCI.setBounds (10, 30, 90, 20);
LDataP.setText ("Data :");
LDataP.setFont (new Font ("Verdana", Font.BOLD|Font.PLAIN, 11));
getContentPane ().add (LDataP);
LDataP.setBounds (120, 10, 40, 14);
FDataP.setBackground (Color.WHITE);
FDataP.setFont (new Font ("Verdana", Font.BOLD|Font.PLAIN, 12));
FDataP.setEditable (false);
getContentPane ().add (FDataP);
FDataP.setBounds (120, 30, 100, 20);
LSolicitante.setText ("Solicitante :");
LSolicitante.setFont (new Font ("Verdana", Font.BOLD|Font.PLAIN, 11));
getContentPane ().add (LSolicitante);
LSolicitante.setBounds (10, 60, 90, 14);
FSolicitante.setBackground (Color.WHITE);
FSolicitante.setFont (new Font ("Verdana", Font.BOLD|Font.PLAIN, 12));
FSolicitante.setEditable (false);
getContentPane ().add (FSolicitante);
FSolicitante.setBounds (10, 80, 200, 20);
LAssuntoP.setText ("Assunto :");
LAssuntoP.setFont (new Font ("Verdana", Font.BOLD|Font.PLAIN, 11));
getContentPane ().add (LAssuntoP);
LAssuntoP.setBounds (10, 110, 66, 14);
FAssuntoP.setBackground (Color.WHITE);
FAssuntoP.setFont (new Font ("Verdana", Font.BOLD|Font.PLAIN, 12));
FAssuntoP.setEditable (false);
getContentPane ().add (FAssuntoP);
FAssuntoP.setBounds (10, 130, 200, 20);
LOrigemP.setText ("Dpto. de Origem :");
LOrigemP.setFont (new Font ("Verdana", Font.BOLD|Font.PLAIN, 11));
getContentPane ().add (LOrigemP);
LOrigemP.setBounds (10, 160, 116, 14);
FOrigemP.setBackground (Color.WHITE);
FOrigemP.setFont (new Font ("Verdana", Font.BOLD|Font.PLAIN, 12));
FOrigemP.setEditable (false);
getContentPane ().add (FOrigemP);
FOrigemP.setBounds (10, 180, 200, 20);
LDestinoP.setText ("Dpto. de Destino :");
LDestinoP.setFont (new Font ("Verdana", Font.BOLD|Font.PLAIN, 11));
getContentPane ().add (LDestinoP);
LDestinoP.setBounds (10, 210, 120, 14);
FDestinoP.setBackground (Color.WHITE);
FDestinoP.setFont (new Font ("Verdana", Font.BOLD|Font.PLAIN, 12));
FDestinoP.setEditable (false);
getContentPane ().add (FDestinoP);
FDestinoP.setBounds (10, 230, 200, 20);
TextareaP.setColumns (20);
TextareaP.setRows (5);
TextareaP.setEditable (false);
SpaneP.setViewportView (TextareaP);
getContentPane ().add (SpaneP);
SpaneP.setBounds (260, 20, 490, 300);
RVisualizar.setText ("Visualizar Relatório");
RVisualizar.setFont (new Font ("Verdana", Font.BOLD|Font.PLAIN, 10));
RVisualizar.setSelected (true);
RVisualizar.setBackground (new Color (230,230,225));
RVisualizar.setBorder (BorderFactory.createEmptyBorder (0, 0, 0, 0));
RVisualizar.setMargin (new Insets (0, 0, 0, 0));
getContentPane ().add (RVisualizar);
RVisualizar.setBounds (15, 270, 130, 15);
REditar.setText ("Editar Relatório");
REditar.setFont (new Font ("Verdana", Font.BOLD|Font.PLAIN, 10));
REditar.setBackground (new Color (230,230,225));
REditar.setBorder (BorderFactory.createEmptyBorder (0, 0, 0, 0));
REditar.setMargin (new Insets (0, 0, 0, 0));
getContentPane ().add (REditar);
REditar.setBounds (15, 295, 110, 15);
RImprimir.setText ("Imprimir Relatório");
RImprimir.setFont (new Font ("Verdana", Font.BOLD|Font.PLAIN, 10));
RImprimir.setBackground (new Color (230,230,225));
RImprimir.setBorder (BorderFactory.createEmptyBorder (0 ,0, 0, 0));
RImprimir.setMargin (new Insets (0, 0, 0, 0));
getContentPane ().add (RImprimir);
RImprimir.setBounds (15, 320, 125, 15);
grupo.add (RVisualizar);
grupo.add (REditar);
grupo.add (RImprimir);
BAnterior.setText ("<<<");
BAnterior.setFont (new Font ("Arial", Font.BOLD|Font.PLAIN, 11));
getContentPane ().add (BAnterior);
BAnterior.setBounds (265, 360, 55, 20);
BProximo.setText (">>>");
BProximo.setFont (new Font ("Arial", Font.BOLD|Font.PLAIN, 11));
getContentPane ().add (BProximo);
BProximo.setBounds (335, 360, 55, 20);
BInicio.setText ("INÍCIO");
BInicio.setFont (new Font ("Arial", Font.BOLD|Font.PLAIN, 11));
getContentPane ().add (BInicio);
BInicio.setBounds (410, 360, 70, 20);
BFim.setText ("FIM");
BFim.setFont (new Font ("Arial", Font.BOLD|Font.PLAIN, 11));
getContentPane ().add (BFim);
BFim.setBounds (480, 360, 70, 20);
BVolta10.setText ("VOLTA 10");
BVolta10.setFont (new Font ("Arial", Font.BOLD|Font.PLAIN, 11));
getContentPane ().add (BVolta10);
BVolta10.setBounds (560, 360, 90, 20);
BAvanca10.setText ("AVANÇA 10");
BAvanca10.setFont (new Font ("Arial", Font.BOLD|Font.PLAIN, 11));
getContentPane ().add (BAvanca10);
BAvanca10.setBounds (650, 360, 89, 20);
BComfirmar.setText ("ACESSAR");
BComfirmar.setFont (new Font ("Arial", Font.BOLD|Font.PLAIN, 11));
BComfirmar.addActionListener (this);
getContentPane ().add (BComfirmar);
BComfirmar.setBounds (10, 360, 90, 20);
BSair.setText ("SAIR");
BSair.setFont (new Font ("Arial", Font.BOLD|Font.PLAIN, 11));
BSair.addActionListener (this);
getContentPane ().add (BSair);
BSair.setBounds (110, 360, 90, 20);
MArquivo.setMnemonic (KeyEvent.VK_A);
MArquivo.setFont (new Font ("Verdana", Font.BOLD, 11));
BarraMenu.add (MArquivo);
INovo.setFont (new Font ("Verdana", Font.BOLD, 11));
INovo.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_N, ActionEvent.CTRL_MASK));
INovo.addActionListener (this);
ISair.setFont (new Font ("Verdana", Font.BOLD, 11));
ISair.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_S, ActionEvent.CTRL_MASK));
ISair.addActionListener (this);
ICad.setFont (new Font ("Verdana", Font.BOLD, 11));
ICad.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_D, ActionEvent.CTRL_MASK));
ICad.addActionListener (this);
MEditar.setMnemonic (KeyEvent.VK_E);
MEditar.setFont (new Font ("Verdana", Font.BOLD, 11));
BarraMenu.add (MEditar);
MSobre.setFont (new Font ("Verdana", Font.BOLD, 11));
BarraMenu.add (MSobre);
MArquivo.add (INovo);
MArquivo.addSeparator ();
MArquivo.add (ISair);
MArquivo.add (ISair);
setJMenuBar (BarraMenu);
MEditar.add (ICad);
}
public static void main (String args[])
{
EventQueue.invokeLater (new Runnable ()
{
public void run ()
{
new classpr ().setVisible (true);
}
});
}
public void actionPerformed (ActionEvent e)
{
if(e.getSource () == INovo)
{
int selectedOption = JOptionPane.showConfirmDialog (this,"As informações serão perdidas\nVocê tem certeza?", "Atenção", JOptionPane.YES_NO_OPTION);
if(selectedOption == JOptionPane.YES_OPTION)
{
FNumCI.setText ("");
FSolicitante.setText ("");
FDataP.setText ("");
FAssuntoP.setText ("");
FOrigemP.setText ("");
FDestinoP.setText ("");
TextareaP.setText ("");
}
else if(selectedOption == JOptionPane.NO_OPTION)
{
return;
}
}
if(e.getSource () == ISair)
{
System.exit (0);
}
if(e.getSource () == ICad)
{
msg("teste");
}
if(e.getSource () == BSair)
{
System.exit (0);
}
if(e.getSource () == BComfirmar)
{
msg ("Mensagem Teste");
}
// a navegação pode ser mal sucedida
try
{
// verifica se foi clicado no botão bPrimeiro
if (e.getSource()==BInicio)
// retrocede o ResultSet para o primeiro registro
consulta.first();
// verifica se foi clicado no botão bProximo
if (e.getSource()==BProximo)
// avança o ResultSet para o próximo registro
consulta.next();
// verifica se foi clicado no botão bAnterior
if (e.getSource()==BAnterior)
// retrocede o ResultSet para o registro anterior
consulta.previous();
// verifica se foi clicado no botão bUltimo
if (e.getSource()==BFim)
// avança o ResultSet para o último registro
consulta.last();
// verifica se foi clicado no botão bAvanca10
if (e.getSource()==BAvanca10)
// avança o ResultSet em 10 registros
consulta.relative(10);
// verifica se foi clicado no botão bRetrocede10
if (e.getSource()==BVolta10)
// retrocede o ResultSet em 10 registros
consulta.relative(-10);
// executa o método ExibeCampos para atualizar os dados na GUI
ExibeCampos();
} // fim do bloco try
// não faz tratamento de erros de navegação de registros
catch(SQLException ex) {}
}
// Método para atualizar os dados na GUI
public void ExibeCampos()
{
// cria o atributo valorCampos para indicar BOF ou EOF
String valorCampos = "";
// a cópia dos registros pode ser mal sucedida
try
{
// verifica se está no início do ResultSet
if (consulta.isBeforeFirst())
// atribui a valorCampos o valor "BOF"
valorCampos="BOF";
// verifica se está no início do ResultSet
if (consulta.isAfterLast())
// atribui a valorCampos o valor "EOF"
valorCampos="EOF";
// exibe BOF ou EOF nos campos da GUI
if (valorCampos.equals("BOF") || valorCampos.equals("EOF"))
{
FNumCI.setText(valorCampos);
FDataP.setText(valorCampos);
FSolicitante.setText(valorCampos);
FAssuntoP.setText(valorCampos);
FDestinoP.setText(valorCampos);
FOrigemP.setText(valorCampos);
TextareaP.setText(valorCampos);
}
// exibe os campos do registro atualmente posicionado no ResultSet
else
{
FNumCI.setText(consulta.getString("id_reg"));
FSolicitante.setText(consulta.getString("id_nom"));
FDestinoP.setText(consulta.getString("id_dest"));
FOrigemP.setText(consulta.getString("id_dpto"));
FDataP.setText(""+consulta.getDate("id_data"));
//TextareaP.setText(consulta.getString("Fianopro"));
//txtTempoDuracao.setText(consulta.getString("Fitemdur"));
}
} // fim do bloco try
// não faz tratamento de erros de cópia de registros
catch(SQLException erro) {}
} // fim do método ExibeCampos
public static void msg (String men)
{
JOptionPane.showMessageDialog (null, men, "Mensagem Teste", JOptionPane.INFORMATION_MESSAGE);
}
}
[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Carneiro[/color][/size] :joia: