correto, eu crio um pacote DAO so para métodos de acessos ao banco, um pacote GETs para armazenar as minhas classes ENTIDADES de GETs and SETTERRS…Encapsulamento e outro pacote, APRESENDAÇÃO, só com as classes de layouts… as que irá aparecer para o usuário…
REEEESUMINDO !!! USO O PADRÃO MVC!!!
e estava programando em SDI, ião se abrindo JANELAS E JANELAS…era janela pra todo lado…
agora estou programando em MDI… fica muuuito mais prático…
e atualizo registro, excluo, altero, tudo passando para outra classe, capturando a linha selecionada… e tambem, nas minhas classes de cadastros de funcionario concursados, terceirizados e etc., os cargos ou salários são listados dentro de uma comboBox apartir de uma consulta em uma tabela específica do BD de acordo para cada cargo.
exemplo…
para eu listar meu funcionário na minha defeautTableModel uso:
public void listarTodos(){
FuncionarioDAO operac = new FuncionarioDAO();
ArrayList<FuncionarioGET> lista = operac.consultarTodos();
Object []vec=null;
vec = new Object[14];
for (int i=0; i<lista.size(); i++){
vec[0] = ((lista.get(i).getId()));
vec[1] = ((lista.get(i).getNome()));
vec[2] = ((lista.get(i).getCpf()));
vec[3] = ((lista.get(i).getRg()));
vec[4] = ((lista.get(i).getEmail()));
vec[5] = ((lista.get(i).getSexo()));
vec[6] = ((lista.get(i).getEmpresa()));
vec[7] = ((lista.get(i).getSetor()));
vec[8] = ((lista.get(i).getCargo()));
vec[9] = ((lista.get(i).getEstadoCivil()));
vec[10] = ((lista.get(i).getSalario()));
vec[11] = ((lista.get(i).getLocalizacao()));
vec[12] = ((lista.get(i).getEndereco()));
vec[13] = ((lista.get(i).getIdade()));
modelo.addRow(vec);
}
}
pode nao ser a melhor maneira, mais é so assim que eu sei fazer…
outro exemplo, pra eu alterar uma linha selecionada uso:
btnAlterar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
jk.setNome((String)tabela1.getValueAt(tabela1.getSelectedRow(),1));
jk.setCpf((String)tabela1.getValueAt(tabela1.getSelectedRow(),2));
jk.setRg((String)tabela1.getValueAt(tabela1.getSelectedRow(),3));
jk.setEmpresa((String)tabela1.getValueAt(tabela1.getSelectedRow(),6));
jk.setCargo((String)tabela1.getValueAt(tabela1.getSelectedRow(),8));
jk.setSetor((String)tabela1.getValueAt(tabela1.getSelectedRow(),7));
jk.setEstadoCivil((String)tabela1.getValueAt(tabela1.getSelectedRow(),9));
jk.setSalario((String)tabela1.getValueAt(tabela1.getSelectedRow(),10));
jk.setEmail((String)tabela1.getValueAt(tabela1.getSelectedRow(),4));
jk.setEndereco((String)tabela1.getValueAt(tabela1.getSelectedRow(),12));
jk.setIdade((String)tabela1.getValueAt(tabela1.getSelectedRow(),13));
jk.setLocalizacao((String)tabela1.getValueAt(tabela1.getSelectedRow(),11));
jk.setSexo((String)tabela1.getValueAt(tabela1.getSelectedRow(),5));
jk.setId((String)tabela1.getValueAt(tabela1.getSelectedRow(),0));
new Alterarfuncionarios(jk);
} catch (ArrayIndexOutOfBoundsException e1) {
JOptionPane.showMessageDialog(null, "Selecione um funcionario para ALTERAÇÃO");
}
}
});
para excluir a mesma coisa:
btnExcluir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
jk.setNome((String)tabela1.getValueAt(tabela1.getSelectedRow(),1));
FuncionarioDAO op = new FuncionarioDAO();
op.excluir(jk);
setVisible(false);
} catch (ArrayIndexOutOfBoundsException e1) {
JOptionPane.showMessageDialog(null, "Selecione um funcionario para EXCLUSÃO");
}
}
});
e dentro dos meus métodos de alteração, exclusão ou insersão, os próprios métodos ja fazem REFRESH na minha tabela automaticamente.
na execução…
public static void main(String[] args) throws SQLException, ClassNotFoundException {
EventQueue.invokeLater(new Runnable() {
public void run() {
TabelaFuncionarios tblFunc = new TabelaFuncionarios();
tblFunc.setVisible(true);
tblFunc.listarTodos();
}
});
}
+++ mais eu repito, essas nao devem ser as melhores maneiras de se fazer… por isso que entrei no fórum, PARA APRENDER… e APRENDER A ENSINAR…
pq a minha dúvida que tirei aqui no FÓRUM, posso muito bem ensinar a alguém que esta tbm afim de aprender… mais so agora eu me deparei com um problema usando defeautTableModel, problema para imprimir a tabela, ou gerar um relatório…
so consigo imprimir criando uma JTable e adicionando colunas e linhas, através de vectores, sem consultas no BD.
mais eu vou dar mais uma pesquisada… vou tentar implementar consultar a esses vectores de inserção.
e eu estou muuuuito curioso agora em criar uma TableModel, ou tentar usar uma dessas ai AbstractTableModel ou ObjectTableModel…
mais é isso ai…
e galera, confesso, sou leigo em JAVA… so q eu sei bastante coisa… e me preoculpa nao saber se é padrão o não.
e avaliem esses meus blocos de códigos ai e digam o q vcs acham…
valew pessoal… e me desculpe ai qualquer coisa… sou meio retardado as vezes… tenho até medo de pensar que estou virando NERD… kkkkk
valew… lfwssss…
pedro.setVisible(false);>