pessoal meu professor me passo um seguinte trabalho, criar 2 lista para armazenar funcionarios ( no caso os dao’s), 2 classe para o departamento e outra para o funcionario e estou fazendo as telas.
só q não estou conseguindo fazer o ele busca na lista e povoar o combo box, e quando ele está povoado eu não consigo salvar o elemento para tal funcionario.
Espero q me ajudem
Grato Felipe Donizetti.
CODIGO do dao e do cadFuncionario
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* CadFuncionario.java
*
* Created on 15/03/2012, 13:52:52
*/
package gui;
import daoList.DepartamentoDAO;
import daoList.FuncionarioDAO;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
import javax.swing.DefaultListModel;
import javax.swing.JOptionPane;
import modelo.Departamento;
import modelo.Funcionario;
/**
*
* @author Felipe
*/
public class CadFuncionario extends javax.swing.JDialog {
private FuncionarioDAO daoFunc;
private DepartamentoDAO daoDpto;
/** Creates new form CadFuncionario */
public CadFuncionario(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
daoFunc = new FuncionarioDAO();
daoDpto = new DepartamentoDAO();
povoarJList(daoFunc);
povoarJcomboBox(daoDpto);
}
/** 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() {
jlblIdFuncionario = new javax.swing.JLabel();
jtxtIdFuncionario = new javax.swing.JTextField();
jbtnPesquisar = new javax.swing.JButton();
jlblNomeFuncionario = new javax.swing.JLabel();
jtxtNomeFuncionario = new javax.swing.JTextField();
jlblEmail = new javax.swing.JLabel();
jtxtEmail = new javax.swing.JTextField();
JlblLogin = new javax.swing.JLabel();
jtxtLogin = new javax.swing.JTextField();
jlblSenha = new javax.swing.JLabel();
jtxtSenha = new javax.swing.JTextField();
jlblDepartamento = new javax.swing.JLabel();
jComboBoxDepartamento = new javax.swing.JComboBox();
jScrollPane1 = new javax.swing.JScrollPane();
jlstFuncionariosCadastrados = new javax.swing.JList();
jlblListaFuncionarios = new javax.swing.JLabel();
jbtnSalvar = new javax.swing.JToggleButton();
jbtnExcluir = new javax.swing.JToggleButton();
jbtnLimpar = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Cadastro Funcionario");
setResizable(false);
jlblIdFuncionario.setText("Id");
jbtnPesquisar.setText("Pesquisar");
jbtnPesquisar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbtnPesquisarActionPerformed(evt);
}
});
jlblNomeFuncionario.setText("Nome");
jlblEmail.setText("E-mail");
JlblLogin.setText("Login");
jlblSenha.setText("Senha");
jlblDepartamento.setText("Departamento");
jlstFuncionariosCadastrados.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jlstFuncionariosCadastradosMouseClicked(evt);
}
});
jScrollPane1.setViewportView(jlstFuncionariosCadastrados);
jlblListaFuncionarios.setText("Funcionarios Cadastrados");
jbtnSalvar.setText("Salvar");
jbtnSalvar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbtnSalvarActionPerformed(evt);
}
});
jbtnExcluir.setText("Excluir");
jbtnExcluir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbtnExcluirActionPerformed(evt);
}
});
jbtnLimpar.setText("Limpar");
jbtnLimpar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbtnLimparActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(19, 19, 19)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jbtnSalvar)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jbtnExcluir)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jbtnLimpar))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jlblDepartamento)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jlblEmail)
.addComponent(jlblNomeFuncionario)
.addGroup(layout.createSequentialGroup()
.addComponent(jtxtIdFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jbtnPesquisar))
.addComponent(jlblIdFuncionario)
.addComponent(jtxtNomeFuncionario, javax.swing.GroupLayout.DEFAULT_SIZE, 234, Short.MAX_VALUE)
.addComponent(jtxtEmail))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(jComboBoxDepartamento, javax.swing.GroupLayout.Alignment.LEADING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jtxtLogin, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(JlblLogin))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jtxtSenha, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jlblSenha)))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jlblListaFuncionarios))))
.addContainerGap(22, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(24, 24, 24)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jlblIdFuncionario)
.addComponent(jlblListaFuncionarios))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jtxtIdFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jbtnPesquisar))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jlblNomeFuncionario)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jtxtNomeFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jlblEmail)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jtxtEmail, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addComponent(JlblLogin)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jtxtLogin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(jlblSenha)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jtxtSenha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jlblDepartamento)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jComboBoxDepartamento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 20, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jbtnSalvar)
.addComponent(jbtnExcluir)
.addComponent(jbtnLimpar))
.addGap(23, 23, 23))
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 264, Short.MAX_VALUE)
.addGap(18, 18, 18))))
);
pack();
}// </editor-fold>
private void jbtnLimparActionPerformed(java.awt.event.ActionEvent evt) {
limpar();
}
private void jbtnSalvarActionPerformed(java.awt.event.ActionEvent evt) {
Funcionario func = new Funcionario();
String msg = "";
try {
func.setId(Integer.parseInt(jtxtIdFuncionario.getText())); //converte o conteudo do campo ID para integer
func.setNome(jtxtNomeFuncionario.getText().toUpperCase()); //converte o conteudo do campo Nome para String
func.setEmail(jtxtEmail.getText().toUpperCase());
func.setLogin(jtxtLogin.getText().toUpperCase());
func.setSenha(jtxtSenha.getText().toUpperCase());
//func.setDepartamento(); falta como q salva o departamento do funcionario
msg = daoFunc.salvar(func);
limpar();
JOptionPane.showMessageDialog(rootPane, msg);
jtxtIdFuncionario.setText("" + func.getNome());
} catch (NumberFormatException ex) {
msg = "Informe um número válido para o departamento";
JOptionPane.showMessageDialog(rootPane, msg);
}
povoarJList(daoFunc);
povoarJcomboBox(daoDpto);
limpar();
}
private void jbtnExcluirActionPerformed(java.awt.event.ActionEvent evt) {
Integer id = Integer.parseInt(jtxtIdFuncionario.getText());
Funcionario func = daoFunc.pesquisarPorID(id);
String msg = daoFunc.excluir(func);
JOptionPane.showMessageDialog(rootPane, msg);
limpar();
}
private void jbtnPesquisarActionPerformed(java.awt.event.ActionEvent evt) {
try {
Integer id = Integer.parseInt(jtxtIdFuncionario.getText()); // converte a strig q está digitando no campo e convertendo para integer
Funcionario func = daoFunc.pesquisarPorID(id);
if (func != null) {
preencherTela(func);
}
} catch (NumberFormatException ex) {
String msg = "Informe um número válido para o departamento";
JOptionPane.showMessageDialog(rootPane, msg);
limpar();
}
}
private void jlstFuncionariosCadastradosMouseClicked(java.awt.event.MouseEvent evt) {
if (evt.getClickCount() >= 2) {
String pesquisa = jlstFuncionariosCadastrados.getSelectedValue().toString();
String[] array = pesquisa.split("-"); // divide em varias array a string
Funcionario func = daoFunc.pesquisarPorID(Integer.parseInt(array[0]));
preencherTela(func);
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(CadFuncionario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(CadFuncionario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(CadFuncionario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(CadFuncionario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the dialog */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
CadFuncionario dialog = new CadFuncionario(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel JlblLogin;
private javax.swing.JComboBox jComboBoxDepartamento;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JToggleButton jbtnExcluir;
private javax.swing.JButton jbtnLimpar;
private javax.swing.JButton jbtnPesquisar;
private javax.swing.JToggleButton jbtnSalvar;
private javax.swing.JLabel jlblDepartamento;
private javax.swing.JLabel jlblEmail;
private javax.swing.JLabel jlblIdFuncionario;
private javax.swing.JLabel jlblListaFuncionarios;
private javax.swing.JLabel jlblNomeFuncionario;
private javax.swing.JLabel jlblSenha;
private javax.swing.JList jlstFuncionariosCadastrados;
private javax.swing.JTextField jtxtEmail;
private javax.swing.JTextField jtxtIdFuncionario;
private javax.swing.JTextField jtxtLogin;
private javax.swing.JTextField jtxtNomeFuncionario;
private javax.swing.JTextField jtxtSenha;
// End of variables declaration
private void limpar() {
jtxtIdFuncionario.setText("");
jtxtNomeFuncionario.setText("");
jtxtEmail.setText("");
jtxtLogin.setText("");
jtxtSenha.setText("");
}
private void povoarJList(FuncionarioDAO daoFunc) {
DefaultListModel modelo = new DefaultListModel();
List<Funcionario> listaFunc = daoFunc.getBancoFuncionario();
jlstFuncionariosCadastrados.setModel(modelo);
for (Funcionario func : listaFunc) {
modelo.addElement(func.getId() + "-" + func.getNome());
}
}
private void povoarJcomboBox (DepartamentoDAO daoDpto)
{
DefaultComboBoxModel modelo = new DefaultComboBoxModel();
List <Departamento> listaDpto = daoDpto.getBanco();
jComboBoxDepartamento.setModel(modelo);
for (Departamento dpto : listaDpto){
modelo.addElement(dpto.getNome());
}
}
private void preencherTela(Funcionario func) {
jtxtIdFuncionario.setText(func.getId() + "");
jtxtNomeFuncionario.setText(func.getNome().toUpperCase());
jtxtEmail.setText(func.getEmail().toUpperCase());
jtxtLogin.setText(func.getLogin());
jtxtSenha.setText(func.getSenha());
//jComboBoxDepartamento. como que resgasta o valor da combo box q representa o funcionario.
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package daoList;
import java.util.ArrayList;
import java.util.List;
import modelo.Departamento;
/**
*
* @author lab
*/
public class DepartamentoDAO {
private List<Departamento> banco;
public DepartamentoDAO(){
banco = new ArrayList<Departamento>();
povoarBanco();
}
private void povoarBanco(){
Departamento dpto1 = new Departamento();
dpto1.setId(1);
dpto1.setNome("Informática");
Departamento dpto2 = new Departamento();
dpto2.setId(2);
dpto2.setNome("Compar");
Departamento dpto3 = new Departamento();
dpto3.setId(3);
dpto3.setNome("Contabilidade");
banco.add(dpto1);
banco.add(dpto2);
banco.add(dpto3);
}
public Departamento pesquisarPorId(Integer id){
Departamento encontrado = null;
for (Departamento dpto : banco)
{
if (dpto.getId()==id){
encontrado = dpto;
}
}
return encontrado;
}
public String salvar(Departamento dpto){
String msg ="";
Departamento depAux = pesquisarPorId(dpto.getId());
if (depAux == null){
banco.add(dpto);
msg ="Departamento inserido com sucesso!";
}else
{
banco.remove(depAux);
banco.add(dpto);
msg="Departamento atualizado com sucesso!";
}
return msg;
}
public String excluir (Departamento dpto)
{
String msg ="Departamento não consta no banco!";
if (banco.contains(dpto)){
banco.remove(dpto);
msg ="Departamento removido com sucesso!";
}
return msg;
}
public List<Departamento> getBanco()
{
return banco;
}
}