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