Por acaso tem como manipular um JTable para incluir linhas de registros de um banco de dados, alem de remover registros, alterar, etc, como se fosse algo como o DBGrid do Delphi? Pois o que eu mexi com o JTable eu achei muito engessado, com aquele datamodel.
Gostaria de, a principio, criar um JTable apenas com o titulo, sem nenhum registro, e o usuario iria apertando o botao inserir e eu incluiria uma linha, o botao remover e eu removeria uma linha, botao gravar para jogar no BD, etc. Sendo assim, eu nao saberia a principio quantas linhas haveria no JTable. Mas os construtores que testei, tanto com datamodel quanto com Object[][] exigem um tamanho pre-definido…
O JTable não é nada engessado, mas sim complicado de implementar tudo isso o que você quer.
A Oracle, por exemplo, oferece algo do tipo do DBGrid do Delphi, mas não é de graça.
P
Ping
até onde saiba, você pode incluir e excluir somente colunas de um mesmo JTable, talvez se vc criasse outro JTable em tempo de execução; mas não seria a maneira mais legal, talvez também mudando diretamente no modelo dele…
E
edilmar
Mas como eu poderia implementar, por exemplo, a inclusao de uma linha dinamicamente? Independentemente da questao do acesso ao JDBC para pegar o registro e tudo mais, supondo que eu ja estivesse com os dados na mao, como eu colocaria os campos dentro do JTable como uma nova linha?
danieldestro
Implementando um Model adequado, onde vc possa adicionar e remover objetos a serem exibidos.
Não se limite a exemplos ruins que você vê na net.
TedLoprao
Realmente, como o danieldestro comentou, a solução é implementar o seu TableModel, pq o DefaultTableModel só soluciona alguns casos (muito poucos por sinal :lol: )… Entretanto se vc implementar o seu TableModel, seguindo a interface corretamente, no mais o limite vai depender unicamente da sua criatividade!!
Na verdade essa divisão de TableModel, JTable e TableCellRenderer servem exatamente para não deixar vc preso a uma implementação e além disso, conseguir separar as responsabilidades… E, infelizmente, é isso q geralmente deixa o desenvolvimento swing mais complexo, a sua malheabilidade nos traz uma maior complexidade.
Era isso, fallow
Hempx
Pessoal tá complicando coisa facil. Lógico que mexer com JTable é um pouco chato tem hora, mas o que vc está querendo já tem tudo em DefaultTableModel.
metados como…
a unica coisa que tem de fazer é pegar o model da sua JTable
DefaultTableModel model = (DefaultTableModel) tab.getModel();
mas como todo mundo falou ae o bom é você mesmo implementar seu model. Olhe a implementação do DefaultTableModel que lhe ajudrá em como começar a fazer o seu com as funcionlidades que precisa. Basta você extender a classe AbstractTableModel para vc fazer seu proprio model.
Aproveite e use a estrutura de dados que lhe convem. Matriz, ArrayList, etc.
Eu tenho um model implementado aqui, mas ele ficou um pouco especifico para minha aplicação. Mas posso lhe passar para te ajudar tbm… mas creio eu que vc vendo a implementação do DefaultTableModel vc já terá ideias boas de como fazer o seu…