【发布时间】:2009-02-05 13:09:24
【问题描述】:
我正在实现一个基于 JTextPane 的文本编辑器。 目前,当我有一段选定的文本时,按 TAB 键会删除选定的文本。我想更改此行为,以便 TAB 缩进所选文本。
怎么办?
【问题讨论】:
我正在实现一个基于 JTextPane 的文本编辑器。 目前,当我有一段选定的文本时,按 TAB 键会删除选定的文本。我想更改此行为,以便 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。
【讨论】: