diff --git a/designer-realize/src/main/java/com/fr/design/actions/insert/cell/GeneralCellAction.java b/designer-realize/src/main/java/com/fr/design/actions/insert/cell/GeneralCellAction.java index ae805e027..758c4e335 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/insert/cell/GeneralCellAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/insert/cell/GeneralCellAction.java @@ -10,6 +10,7 @@ import com.fr.design.menu.MenuKeySet; import javax.swing.*; +import java.awt.event.ActionEvent; /** * @@ -52,4 +53,11 @@ public class GeneralCellAction extends AbstractCellAction implements WorkBookSup public Class getCellValueClass() { return String.class; } + + @Override + public void actionPerformed(ActionEvent evt) { + super.actionPerformed(evt); + this.getEditingComponent().getGrid().getCellEditor().stopCellEditing(); + } + } diff --git a/designer-realize/src/main/java/com/fr/design/cell/editor/TextCellEditor.java b/designer-realize/src/main/java/com/fr/design/cell/editor/TextCellEditor.java index 898474d1c..c0995fe0c 100644 --- a/designer-realize/src/main/java/com/fr/design/cell/editor/TextCellEditor.java +++ b/designer-realize/src/main/java/com/fr/design/cell/editor/TextCellEditor.java @@ -129,7 +129,7 @@ public class TextCellEditor extends AbstractCellEditor { } this.oldValue = Utils.objectToString(value); - this.textField.setText(oldValue); + resetTextWithoutDocumentListener(oldValue); //peter:只读方式获得Style. Style style = null; if(cellElement != null) { @@ -176,4 +176,11 @@ public class TextCellEditor extends AbstractCellEditor { public void keyReleased(KeyEvent evt) { } }; + + + private void resetTextWithoutDocumentListener(String text) { + this.textField.getDocument().removeDocumentListener(documentlistener); + this.textField.setText(text); + this.textField.getDocument().addDocumentListener(documentlistener); + } } \ No newline at end of file