Boa tarde galera, não consigo encontrar o problema numa tela que estou fazendo para pesquisa de funcionários que estou desenvolvendo. Já possuo outras telas com o código similar que rodam perfeitamente, mas esta apresenta o seguinte erro:
compile-single:
run-single:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at speed.TelaPesquisarFuncionario.carregarTabela(TelaPesquisarFuncionario.java:58)
at speed.TelaPesquisarFuncionario.<init>(TelaPesquisarFuncionario.java:30)
at speed.TelaPesquisarFuncionario$2.run(TelaPesquisarFuncionario.java:173)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:602)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
o meu código é este:
package speed;
import java.awt.event.KeyEvent;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;
/**
*
* @author Scatolin
*/
public class TelaPesquisarFuncionario extends javax.swing.JDialog {
private FuncionariosDAO daoFuncionario;
private DefaultTableModel modelo;
private String parametro = " 1 = 1 ";
/** Creates new form TelaPesquisarFuncionario */
public TelaPesquisarFuncionario() {
initComponents();
jTextFieldFiltro.setText("");
// jTextFieldFiltro.requestFocus();
carregarTabela();
}
public TelaPesquisarFuncionario( String parametro1) {
initComponents();
jTextFieldFiltro.setText("" + parametro1);
// jTextFieldFiltro.requestFocus();
carregarTabela();
}
int getCodigo(){
int codigo = Integer.parseInt(jTableFuncionarios.getValueAt(jTableFuncionarios.getSelectedRow(), 0).toString());
return codigo;
}
void carregarTabela(){
Vector colunas = new Vector();
colunas.addElement("CÓDIGO");
colunas.addElement("NOME");
colunas.addElement("ENDEREÇO");
colunas.addElement("TEL. RESID");
colunas.addElement("CELULAR");
colunas.addElement("CARGO");
colunas.addElement("ADMISSÃO");
Vector linhas = new Vector();
parametro = " nome like '" + jTextFieldFiltro.getText().toUpperCase() + "%'";
Vector<Funcionarios> funcionarios = daoFuncionario.selecionar(parametro);
for (int i = 0; i < funcionarios.size(); i++) {
Funcionarios f = funcionarios.elementAt(i);
Vector novaLinha = new Vector();
novaLinha.addElement("" + f.getCod_funcionario());
novaLinha.addElement("" + f.getNome());
novaLinha.addElement("" + f.getEndereco());
novaLinha.addElement("" + f.getTelefone());
novaLinha.addElement("" + f.getCelular());
novaLinha.addElement("" + f.getCargo());
novaLinha.addElement("" + f.getAdmissao());
linhas.addElement(novaLinha);
}
modelo = new DefaultTableModel(linhas, colunas);
jTableFuncionarios.setModel(modelo);
// ARRUMA LARGURA DAS COLUNAS
TableColumnModel tcModel = jTableFuncionarios.getColumnModel();
tcModel.getColumn(0).setPreferredWidth(50);
tcModel.getColumn(1).setPreferredWidth(200);
tcModel.getColumn(2).setPreferredWidth(50);
tcModel.getColumn(3).setPreferredWidth(90);
tcModel.getColumn(4).setPreferredWidth(90);
tcModel.getColumn(5).setPreferredWidth(200);
tcModel.getColumn(6).setPreferredWidth(200);
jTableFuncionarios.updateUI();
jTableFuncionarios.selectAll();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jTextFieldFiltro = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
jTableFuncionarios = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("SPEED - Pesquisa de Funcionários");
jTextFieldFiltro.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
jTextFieldFiltroKeyPressed(evt);
}
});
jLabel1.setText("Filtro");
jTableFuncionarios.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
}
));
jScrollPane1.setViewportView(jTableFuncionarios);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 1181, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTextFieldFiltro, javax.swing.GroupLayout.DEFAULT_SIZE, 1153, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jTextFieldFiltro, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(36, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void jTextFieldFiltroKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
parametro = " nome like '" + jTextFieldFiltro.getText().toUpperCase() + "%'";
carregarTabela();
if (evt.getKeyCode() == KeyEvent.VK_ENTER){
dispose();
evt.setKeyCode(KeyEvent.VK_ESCAPE);
}
if (evt.getKeyCode() == KeyEvent.VK_ESCAPE){
dispose();
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
TelaPesquisarFuncionario dialog = new TelaPesquisarFuncionario();
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTableFuncionarios;
private javax.swing.JTextField jTextFieldFiltro;
// End of variables declaration
}
Obs: já revizei a parte de acesso ao banco que esta funcionanto perfeitamente.
Agradeço a atenção e conto com a colaboração dos mais experientes para resolução deste problema.