5
我正在实现基于JTextPane的文本编辑器。 当前,当我有一段选定的文本时,按TAB键将删除所选文本。我想改变这种行为,使TAB将缩进选定的文本。覆盖JTextPane中TAB的默认行为
如何去呢?
我正在实现基于JTextPane的文本编辑器。 当前,当我有一段选定的文本时,按TAB键将删除所选文本。我想改变这种行为,使TAB将缩进选定的文本。覆盖JTextPane中TAB的默认行为
如何去呢?
东西沿着线:
public void keyPressed (KeyEvent event) {
switch (event.getKeyCode()) {
case KeyEvent.VK_TAB :
insertTabChar (event.isShiftDown());
event.consume();
break;
case KeyEvent.VK_ENTER :
snapshot();
insertNewLine();
event.consume();
break;
}
}
你有一些班列有哪些做到这一点,像this one。
尤其是功能
/**
* manage keyboard tabbing, implementing blockindent.
* @param isUnindent
*/
private void insertTabChar (boolean isUnindent) {
snapshot(); // snapshot current setup
if (isSelection) { // blockindent
可能正是你需要的做的。
另一种方法是重新定义与TAB键相关联的JTextArea组件的操作。看看ActionMap。
我不得不这样做,它看起来就是从这里开始的。 – geowa4 2009-02-05 13:45:29