Jtable

Tenho minhas linhas selecionadas em uma jtable

int[] selecao = tabelaOriginal.getSelectedRows();

preciso adiciona esta selecao em uma tabela

tabelaDestino.addRow(?????);//aqui ele pede um object tem como eu converter o (int[]selecao) em um object para passar as linhas selecionadas para a tabela destino?

Grato.

O addRow serve para adicionar linhas de dados em uma tabela.

Você precisa:
a) Perguntar ao model da tabela que tem a seleção quais dados estão nessa tabela;
b) Fazer um for sobre todas as linhas;
c) Adiciona-las na tabela seguinte.

Você tem um model próprio, não tem? Ou está fazendo a besteira de usar o DefaultTableModel?

PS: Procure prestar atenção ao postar os títulos de seu tópico, e evite títulos com inteiros em letras maiúsculas. O ideal é que seu título seja mais descritivo, como por exemplo “Copiar linhas de um JTable para outro”.

Dê uma lida: http://www.istf.com.br/perguntas/

São regras de etiqueta básicas em qualquer fórum.

estou usando modelo proprio sim, tem algum exemplo?

Nesse caso, adicione um método no seu modelo para ler os dados selecionados:

[code]public List<SuaClasse> get(int[] valores) {
if (valores == null || valores.length == 0)
return Collections.emptyList();

List<SuaClasse> retorno = new ArrayList<SuaClasse>();
for (int valor : valores) {
retorno.add(lista.get(valor));
}
}[/code]

E outro para adicionar uma lista de dados:

[code]public void addAll(List<SuaClasse> valores) {
if (valores == null || valores.size() == 0)
return;

int first = lista.size();
for (SuaClasse valor : valores) {
lista.add(valor);
fireTableRowsInserted(first, first + valores.size());
}[/code]

Aí basta fazer, no seu JButton:

Viny na minha modeltable suaclasse e lista ficaro sem origem suaclasse seria no caso customerbean? e lista? veja meu codigo se fis algo errado


package br.com.cart.model;
//imports
import br.com.cart.bean.CustomerBean;
import javax.swing.table.DefaultTableModel;
import java.text.SimpleDateFormat;
import java.util.List;

public class ModelTableCustomer extends DefaultTableModel {

    private List dados = null;
    SimpleDateFormat fmt = new SimpleDateFormat("dd/MM/yyyy");

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

    @Override
    public int getColumnCount() {
        return 5;
    }

    @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.getId();
        } else if (column == 1) {
            retorno = cl.getName();
        } else if (column == 2) {
            retorno = cl.getDateI();
        } else if (column == 3) {
            retorno = cl.getDataN();
        } else if (column == 4) {
            retorno = cl.getEmpresa();
        }
        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 Inc";
        } else if (column == 3) {
            columnName = "Dt Nascimento";
        } else if (column == 4) {
            columnName = "Empresa";
        }
        return columnName;
    }

    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return false;
    }

    public List<SuaClasse> get(int[] valores) {
        if (valores == null || valores.length == 0) {
            return Collections.emptyList();
        }

        List<SuaClasse> retorno = new ArrayList<SuaClasse>();
        for (int valor : valores) {
            retorno.add(lista.get(valor));
        }
    }

    public void addAll(List<SuaClasse> valores) {
        if (valores == null || valores.size() == 0) {
            return;
        }

        int first = lista.size();
        for (SuaClasse valor : valores) {
            lista.add(valor);
            fireTableRowsInserted(first, first + valores.size());
        }
    }
}

vlw por sua atenção!

Sim, SuaClasse seria o CustomBean e a lista seria o dados.

Uma coisa, por que seu List está sem o tipo List<CustomBean>?
Use os generics para tornar o código mais seguro e evitar os casts.