Acompanhando os conselhos dos companheiros do GUJ, percebi que é inevitável implantar nosso próprio TableModel, e impossível pensar grande com DefaultTableModel. Exemplo de um problema que esbarrei: a data do banco de dados sai na minha tabela com o tipo yyyy-mm-dd.
Neste início de aprendizado, estou entendendo os conceitos da TableModel, mas tenho uma dúvida [b]BEM IDIOTA[/b], e gostaria que me ajudassem, pois não achei exemplos específicos sobre isso: sou muito dependente do NetBeans para “desenhar” meus programas. Ao importar uma tabela para meu JFrame, como faço para que esta tabela utilize o modelo de meu TableModel criado?
SE não me engano, no netbeans, você deve clicar sobre o JTable (não sobre o Scrollpane, que tem o JTable). Ir até a opção tablemodel. Provavelmente em algum lugar por ali (não lembro onde) existe a opção de definir a propriedade através de código do usuário.
Aí vc escreve:
newSeuTableModel();
Onde SeuTableModel é o nome do seu modelo.
Não sei dizer ao certo pois sou usuário de Eclipse, mas já usei essa opção no Netbeans uma vez ou outra.
kicolobo
O table model é uma das coisas mais lindas do Swing, já o DefaultTableModel uma das mais horríveis.
É muito fácil. Basta que você crie uma classe que extenda javax.swing.table.AbstractTableModel.
Você terá de implementar apenas os seguintes métodos:
getRowCount -> Quantas linhas sua tabela tem
getColumnCount -> Quantas colunas sua tabela tem
getValueAt(int row, int column), com base na linha e na coluna, você fornece o Object que representa aquela célula
Se quiser, pode também melhorar a sua interface dando nomes às colunas. Basta implementar a função getColumnName(int column).
marcusluiz83
Sinceramente, me arrependo de ter começado a trabalhar com tabelas do “jeito fácil”, com DefaultTableModel. O problema é que exatamente neste momento em que preciso aperfeiçoar meus programas, esbarrei em várias limitações.
O table model é uma das coisas mais lindas do Swing, já o DefaultTableModel uma das mais horríveis.
É muito fácil. Basta que você crie uma classe que extenda javax.swing.table.AbstractTableModel.
Você terá de implementar apenas os seguintes métodos:
getRowCount -> Quantas linhas sua tabela tem
getColumnCount -> Quantas colunas sua tabela tem
getValueAt(int row, int column), com base na linha e na coluna, você fornece o Object que representa aquela célula
Se quiser, pode também melhorar a sua interface dando nomes às colunas. Basta implementar a função getColumnName(int column).
Depois de trabalhar com outras plataformas, em particular Adobe Air, pra mim o Swing não tem nada de bonito, em relação ao funcionamento default de seus componentes :twisted:
ViniGodoy
O Default dele realmente é péssimo. Mas seria estranho se o Air (que veio depois) fosse pior.