JTable alguem me ajuda por favor coisa simples!

3 respostas
ken420

To com um problema aqui para manipular uma jtable, o que eu tenho é o seguinte tenho a tabela que se relaciona com o banco normal, tenho uma classe ModelTable que extende DefaultTableModel, que trato os evento da minha tabela nessa classe. O que eu queria fazer é o seguinte, ao clicar com o mouse na minha JTable ele ordenar poe nome ou codigo. Exemplo se eu clicar com o mouse em
columnName = “Nome” ele ordernar por nome essa minha coluna alguem pode me da essa ajuda? to a dias nisso quebrando a cabeca consegui fazer a classe DefaultTableModel mas pra implementar esse model ae ta muito complicado mesmo, obrigado pela atenção.

public class ModelTableCustomer extends DefaultTableModel
{
   private ArrayList dados = null;

   public ModelTableCustomer(ArrayList dados)
   {
      this.dados = dados;
   }

    @Override
   public int getColumnCount()
    {
      return 5; //quantidade de campos do desbravador
   }

    @Override
   public int getRowCount()
    {
      if (this.dados == null)
      {
         return 0;
      } 
      else
      {
         return this.dados.size();
      }
   }

    @Override
   public Object getValueAt(int row, int column)
    {
      CustomerBean cl = (CustomerBean) this.dados.get(row);

      Object retorno = null;
      if (column == 0)
      {
         retorno = cl.getCodigo();
      } 
      else if (column == 1)
      {
         retorno = cl.getNome(); 
      }
      else if (column == 2)
      {
         retorno = cl.getDataC();
      }
      else if (column == 3)
      {
         retorno = cl.getTelefone();
      }
      else if (column == 4)
      {
         retorno = cl.getEmail();
      }
      return retorno;
   }

   @Override
   public String getColumnName(int column)
   {
      String columnName = "";
      if (column == 0)
      {
         columnName = "Código";
      } 
      else if (column == 1)
      {
         columnName = "Nome";
      }
      else if (column == 2)
      {
         columnName = "Data de Cadastro";
      }
      else if (column == 3)
      {
         columnName = "Telefone";
      }
      else if (column == 4)
      {
         columnName = "Email";
      }
      return columnName;
   }

3 Respostas

ViniGodoy

Dá uma olhada nisso aqui:
http://www.guj.com.br/posts/list/100793.java

ken420

caraca , quanta classe complicada em!

ViniGodoy

Bom, é um auto-filtro genérico. Mas ele não é complicado, não. Basicamente é um model que você coloca “em volta” do seu model, um decorator (igual existe com os InputStreams da vida). A única complicação é que as linhas que o Table vai mostrar deixam de ser idênticas as linhas do model (graças ao filtro e a ordenação), por isso você terá que perguntar a ele o valor do model que corresponde a tela, e vice-versa.

Também tem um model mais esperto, que torna muito mais simples o trabalho de se implementar um TableModel.

Criado 22 de abril de 2009
Ultima resposta 23 de abr. de 2009
Respostas 3
Participantes 2