setCellEditor em apenas 1 célula em jTable

2 respostas
Bruno_M_Gasparotto

Olá!

Tenho um jTable que em uma determinada coluna, jComboBoxes são os editores, atualmente definidos assim:

TableColumn col = jTable1.getColumnModel().getColumn(8);
col.setCellEditor(new bruno.EntradaSIGESComboBoxEquipe());

Neste caso funciona, pois para todos as linhas, serão os mesmo valores, porém em uma outra coluna, preciso que a cada linha, opções diferentes sejam exibidas, então criei o comboBox abaixo, adicionando um construtor que recebe um vetor String com os campos que eu desejo (serão retorno de uma consulta no banco de dados):

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bruno;

import java.awt.Component;
import javax.swing.AbstractCellEditor;
import javax.swing.JComboBox;
import javax.swing.JTable;
import javax.swing.table.TableCellEditor;

/**
 *
 * @author bruno
 */
public class EntradaSIGESComboBoxEndereco extends AbstractCellEditor implements TableCellEditor {
    private JComboBox field;   
    private String[] values;
    
    EntradaSIGESComboBoxEndereco (String[] values) {
        this.values = values;
    }
  
    @Override   
    public Component getTableCellEditorComponent(JTable table,   
            Object value, boolean isSelected, int row, int column) {   
        field = new JComboBox(values);   
        field.setSelectedItem(value); //Deixa o editor pré-selecionado com o valor da célula   
        return field;   
    }   
  
    @Override   
    public Object getCellEditorValue() {   
        return field.getSelectedItem().toString();   
    }  
}

Ok, mas procurei e não encontrei uma forma de colocar essa comboBox em uma célula em específico, ex:

adiciono a linha 0.
comboBox tem as opções: Item 1 e Item 2.

depois adiciono a linha 2:
comboBox tem as opções Item 3, Item 4 e Item 5, porém o comboBox da linha 1 continua intacto.

Como implementar?
Obs: tenho meu próprio tableModel, n sei se ajuda...

Abraços!

2 Respostas

Bruno_M_Gasparotto

ninguem? :frowning:

Bruno_M_Gasparotto

quase consegui utilizando o método abaixo:

Mas como eu uso meu próprio tableModel, não consegui fazer funcionar, as comboboxes ficam diferentes mas o restante todo da linha é preenchida por elas, e isso nao pode acontecer pois preciso de mais colunas pós-combobox.

Enfim, se algum iluminado puder me ajudar, agradeço mto pq até agora n consegui, mas por falta de procurar não foi :S

Criado 11 de maio de 2012
Ultima resposta 13 de mai. de 2012
Respostas 2
Participantes 1