Jtable...cellEditor

1 resposta
G

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:
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;
	}

1 Resposta

G

Alguem da um help ai =)

Criado 5 de novembro de 2007
Ultima resposta 5 de nov. de 2007
Respostas 1
Participantes 1