import javax.swing.text.*;import javax.swing.event.*;import java.awt.event.*;public class ToggleInsertDocument extends PlainDocument implementsKeyListener{ private boolean insertMode = true; public void keyPressed(KeyEvent e) {} public void keyReleased(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_INSERT) { toggleInsertMode(); } } public void keyTyped(KeyEvent e) { } public boolean isInsertMode() { return insertMode; } public void toggleInsertMode() { insertMode = !insertMode; } public void setInsertMode(boolean insertMode) { this.insertMode = insertMode; } public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { if (!insertMode) { int docLength = getLength(); if (offs < docLength) { int remainder = docLength - offs; int length = str.length(); length = (length > remainder) ? remainder : length; remove(offs, length); } } super.insertString(offs, str, a); }}