1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

JTable sobrescrevendo linha

Boa tarde colegas,

Estou desenvolvendo um sistema de vendas simples onde utilizou uma JTable para buscar o produto no banco e apresentar na tela, isso tudo funciona perfeitamente, o problema é que eu tenho um botão Inserir e quero que crie uma linha a cada ação do botão mas toda vez que chamo o metodo ele sobrescreve a linha já criada, eu pensei em uma solução para isso mas acho que não é a mais adequada.

Gambiarra: Criei uma variavel x global e aloquei o valor de 0, porem quando o metodo é chamado implemento o valor de 1 nela, sendo assim consigo fazer um for com o numero de vezes que o metodo foi chamado.

Segue metodo que preenche a tabela.


 public void preencherTabela() throws SQLException{

            ArrayList dados = new ArrayList();      
            String[] Colunas = new String[]{"Nome","Setor","Produto","Quantidade","Preço"};

            VendaDao obj = new VendaDao();
            ClienteModel cliente = new ClienteModel();

            int codigo = Integer.parseInt(jtCodigoCliente.getText());
            cliente=obj.buscaCliente(codigo);         

            //gambiarra
            int y =1;
            if(y==1){
            x= x+1;
            for(int z=0;z<x;z++)
            dados.add(new Object []{cliente.getNome(),cliente.getIdSetor(),"Pudim","6","R$ 2.50"});
            }
            ModeloTabela modelo = new ModeloTabela(dados,Colunas);
            jTableVendas.setModel(modelo);
            jTableVendas.getColumnModel().getColumn(0).setPreferredWidth(150);
            jTableVendas.getColumnModel().getColumn(0).setResizable(false);
            jTableVendas.getColumnModel().getColumn(1).setPreferredWidth(100);
            jTableVendas.getColumnModel().getColumn(1).setResizable(false);
            jTableVendas.getColumnModel().getColumn(2).setPreferredWidth(100);
            jTableVendas.getColumnModel().getColumn(2).setResizable(false);
            jTableVendas.getColumnModel().getColumn(3).setPreferredWidth(90);
            jTableVendas.getColumnModel().getColumn(3).setResizable(false);
            jTableVendas.getColumnModel().getColumn(4).setPreferredWidth(142);
            jTableVendas.getColumnModel().getColumn(4).setResizable(false);
            jTableVendas.getTableHeader().setReorderingAllowed(false);
            jTableVendas.setAutoResizeMode(jTableVendas.AUTO_RESIZE_OFF);
            jTableVendas.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

        }

Sendo assim vou retornar um array de cliente para inserir no dados.

Alguém tem uma solução melhor ?

  • Só pra deixar mais claro, o if nao serve pra nada :|

    Rafael Ferreira   02 de abr de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java mysql swing ou faça a sua própria pergunta.