Fera, deixa eu tentar te explicar de uma maneira que você consiga compreender e que não me faça parecer um cara (muito) chato:
O que você tentou fazer?
Veja, programar é mais que pegar um código pronto aqui, outro ali. É extremamente necessário que você coloque a mão na massa e faça.
O objetivo do guj é esclarecer dúvidas a partir de algo que você já fez.
Então, me mostre os códigos:
- Obtendo linha da JTable
- O teu table model
- O método que, a partir da linha selecionada, retorna o objeto
- A classe que faz conexão com o banco de dados
- O método que realiza o tal update que você está questionando.
Aí podemos ajudar, talvez não apenas eu, mas os demais participantes do fórum.
mano entenda. eu quero muito mostrar o code porem eu não sei colocar ele aqui, de forma da pagina toda, se eu souber eu coloco, se pah o projeto todo para poderem me ajudar.
Upa o projeto no github então.
Quais é a tela? E o table model? E o dao?
jtable acima
TelaInicial -> tela para inicialização e com um label que mostrar a conexão com o DB.
TelaEntrar -> (1) tela onde ira solicitar para o usuário selecionar.
Editar -> (1) tela onde se cadastra, altera e apaga os evento.
TelaEvento -> Após clicar no evento selecionado na TelaEntrar será onde todas as adição dos atleta, mostra relatório, apaga atleta editar atleta será referente a esse evento selecionado.
AtletaEd + TelaEditarAtleta + TelaCadastroAtleta( Essa tela foi descontinuada) ( todas as 3 tela são para o mesmo propósito) -> tela de cadastras, apaga e editar atleta referente ao evento selecionado na TelaEntrar.
TelaChaveLuta -> Onde ira mostrar as informação do atleta referente a caixa de combinação.
Não quero toda a estrutura, apenas a que está em questão neste tópico.
Onde está o table model?
Onde está o dao?
Ou você fez tudo misturado?
Dao, está na pasta model, fiz um pouco misturado, pois qnd eu iniciei o projeto não sabia dessa metodologia ágil do dao e bean, e a jtable está no meu comentário anterior.
E o bendito table model? Não fez?
Man sorry não sei operar o Github, deu um trabalhão para colocar meu projeto nele, rsrsrsr
/EventoEntarTableModel
/ *
- Para alterar esse cabeçalho de licença, escolha Cabeçalhos de licença em Propriedades do projeto.
- Para alterar este arquivo de modelo, escolha Ferramentas | Modelos
- e abra o modelo no editor.
- /
pacote Model.Bean;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
/ **
*
-
@autor hyago
-
/
public class EventoEntarTableModel extends AbstractTableModel {
Lista privada eve = new ArrayList <> ();
private String [] colunas = {“id_evento”, “nome_evento”, “organizador”, “Data_Inicio”, “Data_Fim”};
@Sobrepor
public String getColumnName (coluna int) {
return colunas [coluna];
}
@Sobrepor
public int getRowCount () {
return eve.size ();
}
@Sobrepor
public int getColumnCount () {
return colunas.length;
}
@Sobrepor
Objeto público getValueAt (int linha, int coluna) {
interruptor (coluna) {
caso 0:
return eve.get (linha) .getId_evento ();
caso 1:
return eve.get (linha) .getNome_evento ();
caso 2:
return eve.get (linha) .getOrganizador ();
caso 3:
return eve.get (linha) .getData_Inicio ();
caso 4:
return eve.get (linha) .getData_Fim ();
}
return null;
}
@Sobrepor
public void setValueAt (valor do objeto, int linha, int coluna) {
interruptor (coluna) {
caso 0:
eve.get (linha) .setId_evento (Integer.parseInt ((String) valor));
pausa;
caso 1:
eve.get (linha) .setNome_evento ((String) valor);
pausa;
caso 2:
eve.get (linha) .setOrganizador ((String) valor);
pausa;
caso 3:
eve.get (linha) .setData_Inicio ((String) valor);
pausa;
caso 4:
eve.get (linha) .setData_Fim ((String) valor);
pausa;
}
this.fireTableRowsUpdated (linha, linha);
}
public void addRow (Evento e) {
this.eve.add (e);
this.fireTableDataChanged ();
}
removedor público vazioRow (int linha) {
this.ve.remove (linha);
this.fireTableRowsDeleted (linha, linha);
}
}
Você pode fazer de várias maneiras, eu faria assim,
Primeiro, no arquivo EventoEntarTableModel, criaria esses dois métodos:
public Evento retornaEventoPorLinha(int linha) {
return this.eve.get(linha);
}
E
public void setEventoNaLinha(int linha, Evento evento) {
this.eve.set(linha, evento);
fireTableDataChanged();
}
Aí, você já tem a possibilidade de selecionar uma linha, clicar em um botão para editar, abrir o formulário com os dados deste evento, salvar, gravar no banco e atualizar a tabela.
Era isso que queria saber?
Mas como eu faço para o atleta sempre ser ligado ao evento selecionado?
Teu projeto está tão bagunçado, que eu sequer encontrei a classe evento.
Kkkkkkk, realmente está uma zorra esse projeto.
Sugestão: refaça tudo do zero.
E isso significa, basicamente, começar definindo as estruturas mais básicas, aquelas que representam o domínio do teu projeto, as entidades e suas relações.
Eu criaria um projeto com esta estrutura:
Projeto
|---src
|---- pu
|---- entities
|---- repositories
|---- utils
|---- views
Onde:
pu - diretório principal do projeto, onde você vai colocar a classe com o método main para iniciar o projeto.
entities - onde ficam somente as entidades.
repositories - onde ficam os daos
utils - onde ficam todas as classes utilitárias, incluindo os enums
views - onde ficam as classes relacionadas à view, incluindo os table models.
Depois que construir tudo isso, aí sim, pouco a pouco, vai construindo a aplicação, começando pelos DAOs.
Mano, poderia entrar em contato com vc pelo Skype?