Aew galera preciso implementar 3 jComboBox de Objetos dentro de uma JTable, mas esta faltando alguma manha que acabei esquecendo pq ja faz um tempo que faço isso com Swiing, ao selecionar o valor no combo ele nao altera o indice, só em modo de edição ele mostra o item selecionado…
Segue
[code]public class ComboBoxRenderer extends JComboBox implements TableCellRenderer {
public ComboBoxRenderer(List<ParametroFormulaOpcao> items) {
super(items.toArray());
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column) {
if (isSelected) {
setForeground(table.getSelectionForeground());
super.setBackground(table.getSelectionBackground());
} else {
setForeground(table.getForeground());
setBackground(table.getBackground());
}
setSelectedItem(value);
return this;
}
}[/code]
[code]public class ComboBoxEditor extends DefaultCellEditor {
public ComboBoxEditor(List items) {
super(new JComboBox(items.toArray()));
}
public ComboBoxEditor(String[] items) {
super(new JComboBox(items));
}
}[/code]
[code]
private void populaCombos() {
tbFormulas.setModel(new FormulasModel(obj.getParametroFormulaICMSList()));
tbFormulas.setRowHeight(20);
TableColumn colOp1 = tbFormulas.getColumnModel().getColumn(1);
colOp1.setCellEditor(new ComboBoxEditor(listaParamOpcao));
colOp1.setCellRenderer(new CbParametroOpcaoRenderer(listaParamOpcao));
String[] op = {"+", "-", "*", "/"};
TableColumn colOperacao = tbFormulas.getColumnModel().getColumn(3);
colOperacao.setCellEditor(new ComboBoxEditor(op));
colOperacao.setCellRenderer(new CbParametroOperacaoRenderer(op));
TableColumn colOp2 = tbFormulas.getColumnModel().getColumn(4);
colOp2.setCellEditor(new ComboBoxEditor(listaParamOpcao));
colOp2.setCellRenderer(new CbParametroOpcaoRenderer(listaParamOpcao));
}[/code]
ele monta os combos mas quando eu seleciono algum valor ele mostra sempre o do indice 0 como selecionado
o que eu tenho que fazer para ele alterar o item selecionado no renderer da celula?