Tonik Posted July 12, 2012 at 11:01 AM Report Share #468465 Posted July 12, 2012 at 11:01 AM Boas caros prgramadores, Eu tenho o meu programa quase concluído, mas estou com um problema que gostava de resolver, o meu programa tem várias Jtables, mas quando faço uma alteraçao em algum dado altera na base de dados e não nas tabelas, apenas atualiza as tabelas quando volto a entrar no programa de novo. Ps: Minha base de dados está num ficheiro txt em uma hashtable. Cumprimentos! Link to comment Share on other sites More sharing options...
joelbrito Posted July 12, 2012 at 11:10 AM Report Share #468466 Posted July 12, 2012 at 11:10 AM Tens que voltar a popular a tabela com os dados da base de dados depois de inserir, actualizar ou eliminar qualquer dado ou conjunto de dados.... Tal como fazes ao iniciar o programa Engenharia de Sistemas Informáticos @ IPCA "Estou convencido de que cerca de metade do que separa os empreendedores de sucesso daqueles malsucedidos é a pura perseverança." - Steve Jobs Link to comment Share on other sites More sharing options...
Tonik Posted July 12, 2012 at 11:16 AM Author Report Share #468467 Posted July 12, 2012 at 11:16 AM Mas exeiste algum código especifico para fazer isto? Como volto a popular a tabela amigo? Link to comment Share on other sites More sharing options...
AJBM Posted July 12, 2012 at 09:01 PM Report Share #468518 Posted July 12, 2012 at 09:01 PM Criar um botão actualizar e quando clicas nele listas o conteúdo do array. Link to comment Share on other sites More sharing options...
KiNgPiTo Posted July 13, 2012 at 09:10 AM Report Share #468538 Posted July 13, 2012 at 09:10 AM Não acho repopular a tabela com um acesso à base de dados muito eficiente, principalmente visto que so estás a inserir/modificar/eliminar um registo. http://www.exampledepot.com/egs/javax.swing.table/AppendRow.html http://www.java2s.com/Code/JavaAPI/javax.swing.table/DefaultTableModeladdRowObjectrowData.htm Link to comment Share on other sites More sharing options...
Tonik Posted July 13, 2012 at 09:50 AM Author Report Share #468545 Posted July 13, 2012 at 09:50 AM Tens alguma outra ideia CRLF? Link to comment Share on other sites More sharing options...
KiNgPiTo Posted July 13, 2012 at 09:54 AM Report Share #468547 Posted July 13, 2012 at 09:54 AM (edited) CRLF não é o nick 🙂 Ou carregas tudo e actualizas ou fazes isso um a um (mais eficiente). Quando inicias o programa, deves ter um método ou pedaço de código que lê o ficheiro, faz o parse e insere na tabela. Após fazeres algo que modifique a base de dados chamas esse método ou copias e colas o código após actualizares o ficheiro com a nova informação. Sem código da tua parte é o máximo que te posso dizer, se bem que com alguma pesquisa implementas isso de uma forma mais eficiente, se sabes aquilo que alteraste no ficheiro não precisas de o ler todo novamente para ir buscar o que já tens... Edited July 13, 2012 at 09:55 AM by KiNgPiTo Link to comment Share on other sites More sharing options...
Tonik Posted July 17, 2012 at 12:09 PM Author Report Share #468990 Posted July 17, 2012 at 12:09 PM Boas amigos, ainda não consegui resolver isto, vou deixar aqui o codigo TODO que lê do ficheiro para que me possam dar algumas dicas. //INICIO LEITURA FICHEIRO while ( ( linha = br.readLine() ) != null) { if(linha.compareTo("USERS") == 0){ String username = br.readLine(); String pass = br.readLine(); gestor.login.insert(username, pass); } if(linha.compareTo("CPID") == 0){//counter de id's para os produtos String count = br.readLine(); counterProdutosID = Integer.parseInt(count); } else if(linha.compareTo("CEID") == 0){//counter para ids de entregas String count = br.readLine(); counterEntregasID = Integer.parseInt(count); } else if(linha.compareTo("IP") == 0){ String nomeProduto=br.readLine(); String idFornecedor=br.readLine(); String origem=br.readLine(); String preco= br.readLine(); String encomendaAuto=br.readLine(); String quantidade=br.readLine(); String identificador = br.readLine(); String quandEncomenda = br.readLine(); Double pr = new Double(preco); int qe = Integer.parseInt(quandEncomenda); Integer quant = new Integer(quantidade); Produtos prod = new Produtos(nomeProduto, idFornecedor, origem, pr, encomendaAuto, identificador, quant, qe); stock.criarProduto(identificador,prod); } else if(linha.compareTo("IC")==0){ String nome=br.readLine(); String morada=br.readLine(); String nif = br.readLine(); String telemovel = br.readLine(); String telefone = br.readLine(); String mail = br.readLine(); String identificador = br.readLine(); int n = Integer.parseInt(nif); int tlf = Integer.parseInt(telefone); int tlm = Integer.parseInt(telemovel); gestor.guardarCliente(identificador, nome, morada, n, tlm, tlf, mail); } else if(linha.compareTo("IF")==0){ String nome=br.readLine(); String morada=br.readLine(); String nif = br.readLine(); String telemovel = br.readLine(); String telefone = br.readLine(); String mail = br.readLine(); String identificador = br.readLine(); int n = Integer.parseInt(nif); int tlf = Integer.parseInt(telefone); int tlm = Integer.parseInt(telemovel); gestor.guardarFornecedor(identificador, nome, morada, n, tlm, tlm, mail); } else if(linha.compareTo("IE")==0){ String IDCliente = br.readLine(); String Destino = br.readLine(); String identificador = br.readLine(); String i = br.readLine();//numero de produtos na lista de entregas desta entrega int ide = Integer.parseInt(identificador); int num = Integer.parseInt(i); gestor.novaEntrega(ide, IDCliente, Destino); int counter=0; while(counter!=num){ String nomeProduto=br.readLine(); String IDFornecedor=br.readLine(); String origem=br.readLine(); String preco=br.readLine(); String encomendaAuto=br.readLine(); String quantidade=br.readLine(); String idp=br.readLine(); String quandEncomenda = br.readLine(); double pr = Double.valueOf(preco); int qe = Integer.parseInt(quandEncomenda);//duas formas de converter de string para int Integer quant = Integer.parseInt(quantidade);// Produtos prod = new Produtos(nomeProduto, IDFornecedor, origem, pr, encomendaAuto, idp, quant, qe); //prod.adicionarQuantidade(quant); gestor.consultarEntregas(ide).adicionarProdutoLista(idp, prod, qe); counter++; } } else if(linha.compareTo("IEE")==0){ String IDCliente = br.readLine(); String Destino = br.readLine(); String identificador = br.readLine(); String i = br.readLine();//numero de produtos na lista de entregas desta entrega int ide = Integer.parseInt(identificador); int num = Integer.parseInt(i); gestor.novaEntregaEfetuada(ide, IDCliente, Destino); int counter=0; while(counter!=num){ String nomeProduto=br.readLine(); String IDFornecedor=br.readLine(); String origem=br.readLine(); String preco=br.readLine(); String encomendaAuto=br.readLine(); String quantidade=br.readLine(); String idp=br.readLine(); String quandEncomenda = br.readLine(); Double pr = new Double(preco); int qe = Integer.parseInt(quandEncomenda);//duas formas de converter de string para int Integer quant = new Integer(quantidade);// Produtos prod = new Produtos(nomeProduto, IDFornecedor, origem, pr, encomendaAuto, idp, quant, qe); prod.adicionarQuantidade(quant); gestor.consultarEntregasEfetuadas(ide).adicionarProdutoLista(idp, prod, qe); } } else if(linha.compareTo("IPEEA")==0){//produto esgotado encomenda auto String nomeProduto=br.readLine(); String nomeFornecedor=br.readLine(); String origem=br.readLine(); String preco= br.readLine(); String encomendaAuto=br.readLine(); String quantidade=br.readLine(); String identificador = br.readLine(); String quandEncomenda = br.readLine(); Double pr = new Double(preco); int qe = Integer.parseInt(quandEncomenda); Integer quant = new Integer(quantidade); Produtos prod = new Produtos(nomeProduto, nomeFornecedor, origem, pr, encomendaAuto, identificador,quant, qe); prod.adicionarQuantidade(quant); stock.adicionarProdutoEsgotadoEA(prod); } else if(linha.compareTo("IPESEA")==0){ //produto esgotado sem encomenda automatica String nomeProduto=br.readLine(); String nomeFornecedor=br.readLine(); String origem=br.readLine(); String preco= br.readLine(); String encomendaAuto=br.readLine(); String quantidade=br.readLine(); String identificador = br.readLine(); String quandEncomenda = br.readLine(); Double pr = new Double(preco); int qe = Integer.parseInt(quandEncomenda); Integer quant = new Integer(quantidade); Produtos prod = new Produtos(nomeProduto, nomeFornecedor, origem, pr, encomendaAuto, identificador, quant, qe); prod.adicionarQuantidade(quant); stock.adicionarProdutoEsgotado(prod); } else if(linha.compareTo("IPE")==0){//protudo encomendado ao fornecedor String nomeProduto=br.readLine(); String nomeFornecedor=br.readLine(); String origem=br.readLine(); String preco= br.readLine(); String encomendaAuto=br.readLine(); String quantidade=br.readLine(); String identificador = br.readLine(); String quandEncomenda = br.readLine(); Double pr = new Double(preco); int qe = Integer.parseInt(quandEncomenda); Integer quant = new Integer(quantidade); Produtos prod = new Produtos(nomeProduto, nomeFornecedor, origem, pr, encomendaAuto, identificador, quant, qe); prod.adicionarQuantidade(quant); stock.adicionarProdutoAEncomendar(prod); } }// FIM LEITURA FICHEIRO Pessoal tendo isto a atualizar as tabelas, eu fico com o meu programa quase concluído, e assim termino o meu curso técnico profissionasl nivel 4!! 🙂 Obrigado a todos Link to comment Share on other sites More sharing options...
Tonik Posted July 19, 2012 at 09:13 AM Author Report Share #469232 Posted July 19, 2012 at 09:13 AM Pessoal, alguem pode dar uma ajudinha? Link to comment Share on other sites More sharing options...
nram Posted July 20, 2012 at 10:04 AM Report Share #469340 Posted July 20, 2012 at 10:04 AM Voltando ao início, existe Observer e Observable para te fazer isso. Supostamente é uma boa política ser usado. Qual é o teu problema atualmente? Link to comment Share on other sites More sharing options...
Tonik Posted July 23, 2012 at 10:47 AM Author Report Share #469735 Posted July 23, 2012 at 10:47 AM Amigo nram, o meu problema é que quando eu altero alguma coisa no programa, as tabelas nunca sao alteredas, pois o programa só lê o ficheiro quando o inicia, ou seja, quando eu faço alguma alteração as tabalas mantem os mesmo dados, e estes dados só são actualizados na proximas vez que abrir o programa. Observer? nao conheço, em que consiste? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now