Melhor componente pra se usar?

Salve galera.

Seguinte, vou tentar explicar de uma maneira bem simples.

Tenho 3 tabelas no banco de dados.

tabela1 (vendas)
tabela2 (tipopagto)
tabela3 (relaciona tipopagamento com vendas)

tabela - vendas(idVenda, idProduto, qtd, valorR$, idTipoPagamento)
tabela - tipopagto(idTipoPagto, tipoPagto)
tabela - relacionaTipoPagtoComVendas(id, idVenda, idTipoPagto, valorR$).

Quando o cliente for fechar uma venda(a vista), abre-se uma tela pedindo o “tipo de pagamento” se é “dinheiro, cheque, cartão debto, cartão cred, ticket etc…”, pensei numa maneira da pessoa poder pagar de várias formas por exemplo, 10,00R$ - Pago 3,00R$ em Dinheiro, R$ 5,00 em Cheque e R$ 2,00 em Cartao Debto.
Pra isso, tentei usar uma JTable para colocar na coluna 1 os tipos de pagamento, e na coluna 2 (editavel) o valorR$ q a pessoa esta pagando, inclusive ja até havia feito, mas eu preciso customizar umas ações na JTable que são tensas e não estou encontrando como fazer, realmente JTable Swing é tenso d++.
Bem, sendo assim, gostaria de saber qual a melhor maneira de se fazer isso, qual componente daria pra fazer isso tranquilamente, não consigo pensar em nada alem de uma JTable.

qquer sugestão, agradeço.

obrigado.

Opa, fernandopaiva, beleza?

Eu vejo da seguinte forma:
Você tem um formulário para cadastrar a venda.
Nesse formulário, tem o número da venda, a data da mesma, quais os produtos e qual o valor total. Também há um botão do tipo “Prosseguir”. Clicando nesse botão, você é direcionado à tela de pagamento.
Nela há uma tabela onde você vai cadastrando quais os pagamentos para esta venda. Então, no topo você tem o número da venda e, abaixo, um botão para “Adicionar pagamento”, seguido da tabela que exibe estes dados. Ao clicar no botão “Adicionar pagamento”, abre um formulário que te mostra qual o valor restante para pagar e quais as formas de pagamento. Confirmando, os dados são adicionados na tabela.

É mais ou menos isso?
Que ações da JTable você quer “customizar”?
Já criou um modelo próprio para representar os dados desta tabela? [Digo, criou um AbstractTableModel para a sua tabela?]
Crie o seu modelo e, dentro dele, você trata os eventos para as linhas da tabela, através do método setValueAt. Você vai digitar ou selecionar algo na tabela, então trate isso no setValueAt ou em outro evento qualquer.

Espero ter ajudado, abraços!

[quote=Nicolas Fernandes]Opa, fernandopaiva, beleza?

Eu vejo da seguinte forma:
Você tem um formulário para cadastrar a venda.
Nesse formulário, tem o número da venda, a data da mesma, quais os produtos e qual o valor total. Também há um botão do tipo “Prosseguir”. Clicando nesse botão, você é direcionado à tela de pagamento.
Nela há uma tabela onde você vai cadastrando quais os pagamentos para esta venda. Então, no topo você tem o número da venda e, abaixo, um botão para “Adicionar pagamento”, seguido da tabela que exibe estes dados. Ao clicar no botão “Adicionar pagamento”, abre um formulário que te mostra qual o valor restante para pagar e quais as formas de pagamento. Confirmando, os dados são adicionados na tabela.

É mais ou menos isso?
Que ações da JTable você quer “customizar”?
Já criou um modelo próprio para representar os dados desta tabela? [Digo, criou um AbstractTableModel para a sua tabela?]
Crie o seu modelo e, dentro dele, você trata os eventos para as linhas da tabela, através do método setValueAt. Você vai digitar ou selecionar algo na tabela, então trate isso no setValueAt ou em outro evento qualquer.

Espero ter ajudado, abraços![/quote]

Salve Nicolas, entaum kra é exatamente isso, a pessoa compra os produtos que precisa e ao finalizar a venda é invocado uma tela com o valor total da compra e um JTable com os tipos de pagamento inseridos na primeira coluna de uma JTable, a segunda coluna seria para valores “R$”. O que preciso customizar na JTable é a segunda coluna para edicao dos valores.

Ja criei meu AbstractTableModel, TableCellEditor e TableCellRenderer, mas o que preciso é que a pessoa ao dar enter na segunda coluna ela abra a edicao, isso nao acontece apenas consigo fazer com click do mouse, entende ?

O cenario seria mais ou menos assim: deu enter na segunda coluna, abre-se a edicao, insere-se o valor e ao dar enter novamente fecha a edicao e passa pra segunda linha para inserir outro valor, por exemplo “Dinheiro,Cheque,Cartao etc…”, to pesquisando bastante e JTable é tenso d++++, nao encontrei uma maneira de fazer isso.

Um amigo me deu a seguinte ideia: "Colocar uma tecla de atalho para um JDialog de valores, ai quando apertar a tecla por exemplo F4 abre-se o JDialog de valores, a pessoa insere o valor que retorna para a linha/coluna selecionada ao apertar o F4, entende ?
Fiz isso, pq fazer pela JTable acho eu que nao da, pelo menos nao encontrei uma maneira de fazer.

obrigado, e qquer dica posta ae.

t+

aqui uma imagem do q estou dizendo. Veja o JTable com os tipos de pagamento e eu inserindo o valor.


Fala, fernando!
Olha, fiz um modelo do que eu entendi. Veja se isso resolve seu problema. Abraços!
Não tá bonitinho, não tá arquiteturado, mas a ideia da resolução que eu tenho tá desenvolvida :smiley:

Grande Nicolas, vou dar uma olhada sim, obrigado.

Agora deixa eu correr pra ver Ghost Rider 2…kkkk !!! Bora la ?

t+ e obrigado.

[quote=Nicolas Fernandes]Fala, fernando!
Olha, fiz um modelo do que eu entendi. Veja se isso resolve seu problema. Abraços!
Não tá bonitinho, não tá arquiteturado, mas a ideia da resolução que eu tenho tá desenvolvida :D[/quote]

Grande Nicolas, sua implementacao ficou show…Eu ja estava mudando para trabalhar desta forma pq customizar a JTable da maneira como eu queria é tenso d+++…mas é isso, assim fica bem mais pratico.

t+ e obrigado.

Opa, Fernando!
Tá bem simples, foi só pra você ter uma ideia. Com o uso de teclas de atalho e auto-completes, acho que isso soluciona seu problema. Acho que visualmente fica mais simples de se entender o que é necessário fazer. Do modo que você quer, você deve implementar o seu TableModel devolvendo coleções para o tipo de pagamento, por exemplo. Mas faça o teste, não custa nada, pode ficar legal também!

Abraço!

[quote=Nicolas Fernandes]Opa, Fernando!
Tá bem simples, foi só pra você ter uma ideia. Com o uso de teclas de atalho e auto-completes, acho que isso soluciona seu problema. Acho que visualmente fica mais simples de se entender o que é necessário fazer. Do modo que você quer, você deve implementar o seu TableModel devolvendo coleções para o tipo de pagamento, por exemplo. Mas faça o teste, não custa nada, pode ficar legal também!

Abraço![/quote]

Grande Nicolas, resolvi o problema. Basicamente criei um JComboBox q possui os Tipos de Pagamento, esse JComboBox é editável e tbm autocomplete, assim o usuário apenas teclando F1 pode escolher o tipo de pagamento q deseja.
Logo abaixo do JComboBox tem um JTextField para o valor R$ e ao lado tem um JTable q recebe os Tipos de Pagamento e o meu AbstractTableModel deste JTable me retorna os valores para ir calculando conforme sao inseridos.
Veja na imagem como eu fiz, nao ficou como eu queria mas customizar as ações na JTable tava me tirando o sono, entao agora resolveu meu problema e meu sono voltou ;-).


[quote=fernandopaiva][quote=Nicolas Fernandes]Opa, Fernando!
Tá bem simples, foi só pra você ter uma ideia. Com o uso de teclas de atalho e auto-completes, acho que isso soluciona seu problema. Acho que visualmente fica mais simples de se entender o que é necessário fazer. Do modo que você quer, você deve implementar o seu TableModel devolvendo coleções para o tipo de pagamento, por exemplo. Mas faça o teste, não custa nada, pode ficar legal também!

Abraço![/quote]

Grande Nicolas, resolvi o problema. Basicamente criei um JComboBox q possui os Tipos de Pagamento, esse JComboBox é editável e tbm autocomplete, assim o usuário apenas teclando F1 pode escolher o tipo de pagamento q deseja.
Logo abaixo do JComboBox tem um JTextField para o valor R$ e ao lado tem um JTable q recebe os Tipos de Pagamento e o meu AbstractTableModel deste JTable me retorna os valores para ir calculando conforme sao inseridos.
Veja na imagem como eu fiz, nao ficou como eu queria mas customizar as ações na JTable tava me tirando o sono, entao agora resolveu meu problema e meu sono voltou ;-).[/quote]

Opa, fernandopaiva!
Que bom que deu tudo certo. Eu até esqueci de comentar contigo: a ideia realmente é você fazer uso de uma JComboBox para os tipos de pagamento. Creio que você tem alguma tabela “DBO.TIPOSPAGAMENTOS”, onde você coloca os possíveis tipos que o cliente pode escolher para pagar. Eu coloquei como String mesmo e esqueci de comentar isso contigo, que bom que lembrou!

Isso aí, bola pra frente. Seu sistema tá bem bonito, gostei de ver. Qualquer coisa, estamos aí!
Grande abraço!!