Melhor desempenho - Armazenar dados da Tabela

2 respostas
marcos.menezes

Caros amigos,

Tenho um painel (JPanel) contendo as seguintes informaçãoes.

1 JComboBox (NomeServico)
1 TextField (Quantidade)
1 JButton Incluir
Tabela. (4 colunas: Nome - Quantidade - Valor Unitario - Sub Total)

Esse comboBox ele “lista” todos os servicos que foram cadastrados na classe Servico. O usuario seleciona o servico que deseja informa a quantidade e clica em incluir. Apos isso os dados irão aparecer na tabela.

Nota: Nenhuma celula pode ser editavel
Nota1: Ao inserir o servico a coluna automaticamente deverá colocar o seu respectivo valor.
Nota2: Ao clicar em incluir deverá listar o Subtotal fazendo o calculo (valorUnitario * Quantidade)

Obs: Qual a melhor maneira para eu armazenar os valores de um modo pré-estabelecido para a coluna ValorUnitario

PS: Esse modo que eu escolhi voces acham que é a melhor opção para o que eu quero?

Abraços !!!

2 Respostas

ViniGodoy

Primeiro de tudo, crie uma classe que contém o código de serviço e o valor.
Provavelmente ela já deve existir no seu modelo de dados.

Depois, nessa classe, adicione o método getTotal(), que fará a conta do preço * quantidade. Outra opção seria deixar essa conta fora, no model, mas não considero uma boa pois ficaria difícil depois alterar esse sistema para incluir, por exemplo, promoções.

Toda vez que seu usuário escolher um objeto e um valor, crie um objeto desse. Ao final, você terá uma lista dos objetos criados.

Ok, agora vamos para a tabela. A tabela é dividida em 2 principais partes:
a) A view: Que mostra os dados;
b) O model: Que diz que dados devem ser desenhados.

Você só precisa se preocupar com o segundo. Crie uma classe filha de AbstractTableModel, que irá guardar uma cópia da sua lista daquela objeto que você acabou de criar.
Nele, diga como você quer as colunas desenhadas. Um exemplo de tablemodel de livros, explicado, é esse aqui:
http://www.guj.com.br/posts/list/132698.java#714736

Você poderá adapta-lo facilmente a sua classe.

marcos.menezes

Vini,

Nao me leve a mal, mas eu to encontrando muita dificuldade, eu li seu artigo, tentei executar, mas como nunca trabalhei com JTable estou com uma dificuldade enorme.
Seria possivel voce me dar um unico exemplo inserindo uma informacao na tabela e ela retornando o valorUnitario.

Obrigado !!!

Criado 30 de outubro de 2009
Ultima resposta 31 de out. de 2009
Respostas 2
Participantes 2