Boa Noite Galera…
Aew é o seguinte… Em uma mesma tela de pedido, o cliente faz a escolha dos itens e ai apertando OK e vai inserindo na Jtable abaixo…
quando o cliente de escolher todos os itens e aperta “confirmar” ele gravara todos os dados.
Minha tela de pedido esta toda funcional… na escolha do cliente, na escolha do item e no fechamento da venda… mas porem so posso fazer a escolha de um item.
Tenho que salvar em Array e depois quando confirmar salvar no banco ?
JuniorMcz:
Boa Noite Galera…
Aew é o seguinte… Em uma mesma tela de pedido, o cliente faz a escolha dos itens e ai apertando OK e vai inserindo na Jtable abaixo…
quando o cliente de escolher todos os itens e aperta “confirmar” ele gravara todos os dados.
Minha tela de pedido esta toda funcional… na escolha do cliente, na escolha do item e no fechamento da venda… mas porem so posso fazer a escolha de um item.
Como seria esta implemento ???
Obg!!
ViniGodoy
Não entendi a dúvida.
JuniorMcz
Boa Noite,
É o seguinte, estou fazendo um sistema de lanchonete, na tela de pedido, na aba de Itens, na parte de cima tenho a consulta dos itens e abaixo tenho a Jtable, que sera os itens solicitados pelo cliente.
Ou seja… o usuario vai escolher um item e digitar a quantidade e depois apertar OK e automaticamente devera aparecer na Jtabel… ate acabar o pedido… ai depois o usuario vai para aba de fechamento…
Lembrando que estas informações ainda nao pode esta na banco de dados. So depois que eu confirmar a venda “pedido”.
ViniGodoy
Ok, a tela entendi como funciona. Mas qual a dúvida? Você disse que tudo funciona normal. Aí você falou que só pode “fazer a escolha de um item”. Escolha aonde, no JTable?
JuniorMcz
Bom dia meu caro, como vai ?
Entao vamos la…
Esta tudo funcional na tela d Pedido… porque nao estou utilizando a JTable"Para escolher varios"… Ai so estou podendo selecionar (um) item… Então queria fazer uma tela de pedido completo… ou seja, escolhendo varios itens…
Entendeu ?
Ai nao tenho nenhuma ideia como será feito…
Pesquisei em toda net, mas nao vi nada com esta logica.
ViniGodoy
Ok.
O JTable tem o método getSelectedRows(), que retorna uma lista com todas as linhas selecionads. Geralmente é esse método que utilizamos.
Aí, basta perguntar ao seu TableModel quem são os objetos naquelas linhas.
manhanijava
é camarada, eu sempre usei defaulttablemodel, sempre fiquei meio assim de digitar aquele monte de código do vini, mas tive que criar uma tabela bem complexa no meu sistema, e vi quanta gambiarra tive que fazer, ai peguei um modelo que ta na assinatura do godoy e GG, tenta implementar suas tabelas pelo exemplo da galera, eles são muito maix experientes que a gente. GG
ViniGodoy
O que o pessoal não sabe é que aquele “monte de código” é muito menos coisa que a quantidade de código que se escreve para fazer o Default funcionar.
Para fazer o get num objeto com o DefaultTableModel, por exemplo, você é obrigado a fazer um get por campo, com um cast em cada campo. Se todos os campos não tiverem presentes, você terá que executar uma query. Isso é muito código, e código inseguro e ineficiente.
O TableModel parece ser muito código, mas é porque a lógica da tabela está toda concentrada num lugar só (o que é muito bom, diga-se de passagem), e não espalhada por diversos métodos na interface gráfica.
manhanijava
O que o pessoal não sabe é que aquele “monte de código” é muito menos coisa que a quantidade de código que se escreve para fazer o Default funcionar.
Para fazer o get num objeto com o DefaultTableModel, por exemplo, você é obrigado a fazer um get por campo, com um cast em cada campo. Se todos os campos não tiverem presentes, você terá que executar uma query. Isso é muito código, e código inseguro e ineficiente.
O TableModel parece ser muito código, mas é porque a lógica da tabela está toda concentrada num lugar só (o que é muito bom, diga-se de passagem), e não espalhada por diversos métodos na interface gráfica.
outra coisa que vc esqueceu de citar godoy, que se vc tiver que popular com muitas linhas a tabela começa a pesar o sistema…no começo é estranho, mas sou uma prova viva que seu exemplo é muito melhor rsrs
ViniGodoy
Sim, isso pq além de duplicar os dados, e te forçar a fazer casts, ele ainda usa vectors e vectors. E tudo isso é sincronizado desnecessariamente.
JuniorMcz
Hum ... entendi + ou - como funciona..
Tem como post um codigo de exemplo ?
so para ter uma base ?
Estou fazendo assim.. é por ai ?
Double totalitem;
PedidoItem ped = new PedidoItem();
totalitem = Double.parseDouble(txtTotal.getText());
ped.setTotal(totalitem);
int row = jTableItens.getSelectedRow();
ped.getTotal(jTableItens.getValueAt(row, 0));
Obg.
ViniGodoy:
manhanijava:
outra coisa que vc esqueceu de citar godoy, que se vc tiver que popular com muitas linhas a tabela começa a pesar o sistema....no começo é estranho, mas sou uma prova viva que seu exemplo é muito melhor rsrs
Sim, isso pq além de duplicar os dados, e te forçar a fazer casts, ele ainda usa vectors e vectors. E tudo isso é sincronizado desnecessariamente.
Sim, isso pq além de duplicar os dados, e te forçar a fazer casts, ele ainda usa vectors e vectors. E tudo isso é sincronizado desnecessariamente.[/quote]
ViniGodoy
Ué, mas assim você ainda usa o DefaultTableModel.
E com isso:
Você ainda cria um array de objects.
Ainda vai ter que fazer cast na hora de fazer a leitura.
Não vai ter o id do item na hora de referênciar um dado do JTable (para excluir ou alterar, por exemplo).
Ainda usa sincronização desnecessária.
[size=24][color=red]Não use DefaultTableModel![/color][/size]
Seu jeito até “roda”, mas está errado e vai te gerar muitos problemas se continuar por esse caminho.
Siga a voz da experiência, essa aí é o pior caminho.
JuniorMcz
Ok, Vini
Então como seria com getSelectedRows()?
Ué, mas assim você ainda usa o DefaultTableModel.
E com isso:
Você ainda cria um array de objects.
Ainda vai ter que fazer cast na hora de fazer a leitura.
Não vai ter o id do item na hora de referênciar um dado do JTable (para excluir ou alterar, por exemplo).
Ainda usa sincronização desnecessária.
[size=24][color=red]Não use DefaultTableModel![/color][/size]
Seu jeito até “roda”, mas está errado e vai te gerar muitos problemas se continuar por esse caminho.
Siga a voz da experiência, essa aí é o pior caminho.
ViniGodoy
Peça ajuda se for para se livrar do DefaultTableModel.
Não dou ajuda para continuar com a gambi do Default.
JuniorMcz
Eu nao quero deixar me codigo ruim, quero deixar da melhor qualidade e facil entendimento…
Então como seria se nao for para usar o DefaultTableModel ?
ViniGodoy:
Peça ajuda se for para se livrar do DefaultTableModel.
Não dou ajuda para continuar com a gambi do Default.
ViniGodoy
Dá uma olhada no link da minha assinatura, ao lado do texto em vermelho.
JuniorMcz
Ok, obrigado! vou analisar estes links quando eu chegar em casa !