java中backspace監聽事件

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
		
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值