1. 類實現KeyListener
public class ChatInputEditor extends ChatArea implements DocumentListener,KeyListene
2.構造中添加監聽
public ChatInputEditor() {
undoManager = new UndoManager();
this.addKeyListener(this);//添加鍵盤監聽
setMap(null);
3.從寫KeyListener中的事件
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_BACK_SPACE) {
int dot = ChatInputEditor.this.getCaret().getDot();
String text = ChatInputEditor.this.getText();
if (getSelectedText() != null && getSelectedText().length() > 0) {
ChatInputEditor.this.removeWordInBetween(getSelectionStart(),
getSelectionEnd());
for(int i=getSelectionStart();i<=getSelectionEnd();i++) {
if(map.size()>0) {
Integer index = map.get(i);
map.remove(i);
imgUrlList.remove(index-1);
}
}
}else if(dot<=text.length()) {
if(map.size()>0) {
Integer index = map.get(dot-1);
map.remove(dot);
imgUrlList.remove(index-1);
}
ChatInputEditor.this.removeWordInBetween(dot,
dot);
}
}
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}