Não consigo selecionar linhas no JTable

6 respostas
DorPho
Galera... meu modelo é este:
public class ArquivosModel extends AbstractTableModel{
    
    private ArrayList listaArquivos = null;
    String[] colunas = null;
    
    ArquivosModel() {
     }    

    ArquivosModel(final ArrayList arrayArquivos, final String[] colunas) {
        setLinha(arrayArquivos);
        setColuna(colunas);
    }
    
    public void setLinha(ArrayList linha){
        this.listaArquivos = linha;
    }
    
    public void setColuna(String[] coluna){
        this.colunas = coluna;
    }
    
    public ArrayList getLinhas(){
        return listaArquivos;
    }
    
    public String[] getColunas(){
        return colunas;
    }
    
    
    public int getRowCount() {
        return listaArquivos.size();
    }

    public int getColumnCount() {
        return 4;
    }
    
    @Override
    public String getColumnName(int col){
        return colunas[col];
    }
    
    @Override
    public boolean isCellEditable(int linha, int coluna){
        return false;
    }

    public Object getValueAt(int rowIndex, int columnIndex) {
        //
        Arquivo arquivos = (Arquivo) listaArquivos.get(rowIndex);
        switch(columnIndex){
            case 0: return arquivos.getNome();
            case 1: return arquivos.getTamanho();
            case 2: return arquivos.getDimensao();
            case 3: return arquivos.getExtensao();
            default: return null;
        }
    }

}
em outra classe tenho um JFileChooser, nele seleciono um diretório com imagens no qual é listado no JTable quando clicado em abrir do JFileChooser...
private void jButton3MouseClicked(java.awt.event.MouseEvent evt) {                                      
        
        JFileChooser Caminho = new JFileChooser();  
        Caminho.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        
            //se clicar em Abrir...
                if (Caminho.showOpenDialog(this)==JFileChooser.APPROVE_OPTION) {                    
                            
                          jLabel5.setText(Caminho.getSelectedFile().getPath());
                          ArrayList lista = consultaArquivo(Caminho.getSelectedFile().getPath());
                          String[] colunas = new String[]{"Nome","Tamanho","Dimensão","Extensão"};
                          
                          final ArquivosModel model = new ArquivosModel(lista, colunas);
                          jTable1.setModel(model);   
                          jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
                          
                          jTable1.addMouseListener(new MouseAdapter() {
                                public void mousePressed(MouseEvent e){
                                    jLabel15.setText("Linha: " + jTable1.getSelectedRow() + jTable1.getSelectedColumn());
                                }                                           
                            }); 
                }
    }

O Problema é quando clico em alguma linha, a linha e a coluna retorna -1, dizendo q nem a linha e coluna estão selecionadas;
Não consigo decifrar onde está o erro..

Um outra coisa queria tbm, qdo clicar na linha ele pintasse e disparasse um evento... acho q o evento acima está correto né?

Um abraço!

6 Respostas

71C4700

coloquei pra rodar tuas classes e funcionou bem.

e quando seleciono a linha ela mostra normal

DorPho

Uai…

q ta acontecendo então???

71C4700

Quando eu seleciono uma linha da Tabela ela mostra no label tanto a linha quanto a coluna correta…

Te mando o projeto que fiz pra testar caso vc queria…

Abraços

DorPho

Poxa… teria q funcionar então…

No meu projeto… não pinta a linha selecionada e quando clico retorna -1 coluna e linha!

Ta estranho!

Minha jTable se encontra dentro de um jTabbedPane/jPanel, Será tem alguma coisa a v?

71C4700

Acredito que nao tenha haver nao…

DorPho

Resolvido!!!

minha jTable estava setada como .enable(false);

ta funcionando agora!!

grande abraço

Criado 3 de janeiro de 2009
Ultima resposta 4 de jan. de 2009
Respostas 6
Participantes 2