Dúvida TableModel[Resolvido]

8 respostas
V

Olá pessoal estou desenvolvendo uma aplicação e nela eu terei que desenhar figuras como linhas, círculos, retangulos e polígonos, com isso eu decidi criar um JTable no qual irá aparecer as propriedades de um determinado objeto como cor, altura, largura, posição x,y, etc…
Porém algums figuras tem propriedades diferentes umas das outras por ex: linha tem x,y inicial e final e um polígono tem por exemplo o número de vértices e área.
A minha dúvida é se eu devo criar um TableModel para cada um por ex: TableModelLine, TableModelPolygon, etc… ou se eu devo criar um único table model e filtrar as propriedades de acordo com o tipo do objeto?

8 Respostas

fabiocsilva

Eu criaria uma tabela com duas colunas: propriedade e valor.

V

sim, isso eu já criei, a minha dúvida é se eu devo criar um TableModel para cada tipo de objeto…

fabiocsilva

Não precisa criar um TableModel pra cada figura, porque as duas colunas servem para qualquer situação.
Por exemplo

Reta
propriedade valor
X0 0
Y0 0
largura 50

Hexágono
propriedade valor
X0 0
Y0 0
X1 30
Y1 30

Não percebi a necessidade de criar uma tabela para cada figura, talvez não tenha entendido o que você quiz dizer. Quando surgir outra figura você vai criar outra classe? E lembrando que esse problema é relacionado apenas com exibição, não com seu modelo de domínio

V

Basicamente terei uma classe figura e nela eu armazenarei os dados como tipo do objeto, x,y, altura, largura, cor, etc…

Minha dúvida é na hora de criar o tablemodel, porquê por exemplo um retangulo tem propriedades como x, y, altura, largura, cor…
um polígono tb tem as msm propriedades e algumas a mais como número de vértices, área, porém estas 2 dá para calcular em tempo de execução e não necessito armazena-las pois não vou utilizar, somente tenho o objetivo de informar ao usuário…

De inicio pensei em criar um tablemodel para cada tipo de figura pois acho mais apropriado, porém não sei se é uma boa prática de programação…

ViniGodoy

Eu criaria um TableModel para cada também.

Outra possibilidade seria trabalhar com Reflection. Nesse caso, dê uma olhada no ObjectTableModel, do Mark (link para ele na minha assinatura).

V

ViniGodoy:
Eu criaria um TableModel para cada também.

Outra possibilidade seria trabalhar com Reflection. Nesse caso, dê uma olhada no ObjectTableModel, do Mark (link para ele na minha assinatura).

achei muito interessante o objecttablemodel

de inicio vou utilizar criar msm um tablemodel para cada tipo de objeto…

tb li este artigo http://www.javaworld.com/javaworld/javatips/jw-javatip102.html

que em parte já solucionou a minha outra dúvida que era como adicionar diferentes componentes em uma determinada coluna do jtable…

fabiocsilva

Esse ObjectTableModel é interessante, não conhecia. Entendi o que você quer fazer, colocar o comportamento que “calcula os dados” em cada TableModel. É uma abordagem válida, de fato. Uma outra abordagem seria o pŕoprio objeto de domínio controlar o que ele quer exibir, e o TableModel apenas exibir. É uma abordagem menos anêmica (vide http://martinfowler.com/bliki/AnemicDomainModel.html). Não digo que é melhor ou pior. É apenas outra idéia.

V

obrigado fabiocsilva, tb vou dar uma lida nesse tutorial…
muito obrigado!

Criado 8 de julho de 2010
Ultima resposta 8 de jul. de 2010
Respostas 8
Participantes 3