Não sei oque há de errado, algúem poderia ajudar (estou usando Swing)?
public int retornaQuantidadeLinhas() {
return tabela.getModel().getRowCount();
}
Não sei oque há de errado, algúem poderia ajudar (estou usando Swing)?
public int retornaQuantidadeLinhas() {
return tabela.getModel().getRowCount();
}
Isso é banco? Swing? FX? Contextualize melhor. Sua pergunta tá sem pé nem cabeça.
Swing, caro.
Posta o código do seu TableModel.
public class TabelaImoveis extends JTable {
/**
*
*/
private static final long serialVersionUID = 8679019858685912438L;
private DefaultTableModel modelo;
private JScrollPane contener;
private JTable tabela;
public void gerarTabela(JFrame janela,String nome) {
modelo = new DefaultTableModel();
tabela = new JTable(modelo);
modelo.addColumn("Id");
modelo.addColumn("Tipo");
modelo.addColumn("Descrição");
modelo.addColumn("Frente");
modelo.addColumn("Fundo");
modelo.addColumn("Área²");
modelo.addColumn("Endereço");
modelo.addColumn("Preço");
modelo.addColumn("Status");
contener = new JScrollPane(tabela);
tabela.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
if (nome.equals("estoque")) {
contener.setBounds(10, 150, 973, 300);
IIteratorImovel iterator = new IteratorImovelDTO(ImovelControl.listaImovelDTO().getArrayDTO());
while(iterator.hasNext()) {
ImovelDTO imovel = (ImovelDTO) iterator.next();
TipoImovelDTO tipo = new TipoImovelDTO();
tipo = TipoControl.pesquisarInt(imovel.getTipo().getId());
if(!imovel.getStatus().equals("Vendido")) {
Object[] linha = {imovel.getId(),
tipo.getNome(),
imovel.getEstado(),
imovel.getFrente(),
imovel.getFundo(),
imovel.getAreaQuadrada(),
imovel.getEnderco(),
imovel.getPreco(),
imovel.getStatus()};
modelo.addRow(linha);
}
}
}
else if(nome.equals("contabilidade")) {
contener.setBounds(350, 150,935,350);
}
else {
contener.setBounds(10, 150, 973, 300);
IIteratorImovel iterator = new IteratorImovelDTO(ImovelControl.listaImovelDTO().getArrayDTO());
while(iterator.hasNext()) {
ImovelDTO imovel = (ImovelDTO) iterator.next();
TipoImovelDTO tipo = new TipoImovelDTO();
tipo = TipoControl.pesquisarInt(imovel.getTipo().getId());
if(imovel.getStatus().equals("Vendido")) {
Object[] linha = {imovel.getId(),
tipo.getNome(),
imovel.getEstado(),
imovel.getFrente(),
imovel.getFundo(),
imovel.getAreaQuadrada(),
imovel.getEnderco(),
imovel.getPreco(),
imovel.getStatus()};
modelo.addRow(linha);
}
}
}
tabela.getColumnModel().getColumn(0).setPreferredWidth(35);
tabela.getColumnModel().getColumn(1).setPreferredWidth(100);
tabela.getColumnModel().getColumn(2).setPreferredWidth(200);
tabela.getColumnModel().getColumn(3).setPreferredWidth(80);
tabela.getColumnModel().getColumn(4).setPreferredWidth(80);
tabela.getColumnModel().getColumn(5).setPreferredWidth(80);
tabela.getColumnModel().getColumn(6).setPreferredWidth(232);
tabela.getColumnModel().getColumn(7).setPreferredWidth(80);
tabela.getColumnModel().getColumn(8).setPreferredWidth(80);
janela.add(contener);
tabela.repaint();
}
Você está usando DefaultTableModel
. Não só eu, mas muita gente aqui vai te recomendar criar o seu próprio TableModel
. Vai facilitar demais sua vida.
Em algum post o Vini Godoy citou como motivos para não usar DefaultTableModel os seguintes:
Depois que você aprende a usar o AbstractTableModel
, nunca mais você vai querer usar o DefaultTableModel
Quando postar código no fórum, formate ele utilizando o botão de texto pré formatado, identificado pelo botão </>
Tem algo muito estranho no seu código, veja só:
public class TabelaImoveis extends JTable { // sua classe é um JTable
private JTable tabela; // mas encapsula outro JTable?
Você criou uma classe TabelaImoveis
que é um JTable
mas essa classe cria outro objeto do tipo JTable
?
Posta o código onde você instancia e usa o objeto da classe TabelaImoveis
.
Quando for citar respostas, tente pegar da fonte original. Você pode citar a resposta de um tópico em outro linkando ele, afinal, se a resposta serviu, muito provavelmente o post é relacionado ao assunto e isso pode agregar conhecimento para resolver a dúvida. Só um conselho, é claro.
[]'s
O post que achei isso, o Vini tava na verdade sendo irônico kkk claro que os primeiros motivos sáo verdadeiros, mas os últimos foi só brincadeira dele mesmo. Mas sempre linko quando a resposta está em outros tópicos.
Eu sei, eu observo, hehe.
Digo isso para podermos centralizar mais conhecimento sobre um tema. Inserir links ajuda a todos que vem procurando respostas (:
Em outra classe eu mostro a tabela criada:
public void tabela(JFrame janela) {
tabela = new TabelaImoveis();
tabela.gerarTabela(janela,"estoque");
tabela.repaint();
janela.add(tabela);
}
Aqui você tem um objeto do tipo TabelaImoveis
Mas dentro do método gerarTabela
você está criando outra JTable
.
Não tem que criar outra JTable
, tem que popular o TableModel
da TabelaImoveis
.