Olá. Estou tentando implementar um CellEditor…Acontece que sempre que edito um valor na celula…ao passar
para a linha debaixo, ele ja vem com o valor antigo e sobrescreve. Acho que nao entendi muito bem como
funciona essa classe. Se alguem puder responder como faço para implementar isso corretamente agradeço muito!
Código:
public Component getTableCellEditorComponent(JTable table,
Object value, boolean isSelected, int row, int column) {
IntegerDocTest document = getDocument();
JTextField textField = getTextField();
document.setMaxValue(56);
if(stopCellEditing()){
System.out.println(value);
textField.setText(String.valueOf(value));
textField.selectAll();
}
return textField;
}
@Override
public boolean stopCellEditing() {
return super.stopCellEditing();
}
public JTextField getTextField() {
if (textField == null) {
textField = new JTextField();
textField.setBorder(new LineBorder(Color.BLACK));
textField.setDocument(getDocument());
textField.setHorizontalAlignment(JTextField.RIGHT);
}
return textField;
}
public void setTextField(JTextField textField) {
this.textField = textField;
}
public IntegerDocTest getDocument() {
if (document == null) {
document = new IntegerDocTest();
}
return document;
}
public void setDocument(IntegerDocTest document) {
this.document = document;
}
}
Meu Model:
[code]
public AbstractTableModel getModelIcms() {
if (modelIcms == null) {
modelIcms = new AbstractTableModel() {
public final String[] columnNames = {"Alíquota", "Código ICMS ECF"};
/*
* Default Constructor
*/
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
if(rowIndex > -1 && rowIndex <= getColumnCount()){
return true;
}else{
return false;
}
}
public int getColumnCount() {
return columnNames.length;
}
public String getColumnName(int column) {
return columnNames[column];
}
public int getRowCount() {
/*List<Cadidecf> cadidecfList = getController().getCadidecflist();
return cadidecfList.size();*/
return 2;
}
public Object getValueAt(int row, int column) {
//List<Cadidecf> cadidecfList = getController().getCadidecflist();
//Cadidecf cadidecf = cadidecfList.get(row);
switch (column) {
case 0: {
CellEditor cellEditor = getIcmsGrid().getColumnModel().getColumn(column).getCellEditor();
return cellEditor.getCellEditorValue();
}
case 1: {
}
}
return null;
}
};
}
return modelIcms;
}[/code]