【发布时间】:2011-08-22 12:38:11
【问题描述】:
我有一个 JTextArea。我有一个函数可以在调用某种组合时选择一定数量的文本。它做得很好。 The thing is, I want to move caret to the selection beginning when some text is selected and VK_LEFT is pressed. KeyListener 已正确实现,我以其他方式对其进行了测试。问题是,当我编写以下代码时:
@Override public void keyPressed( KeyEvent e) {
if(e.getKeyChar()==KeyEvent.VK_LEFT)
if(mainarea.getSelectedText()!=null)
mainarea.setCaretPosition(mainarea.getSelectionStart());
}
并将此侦听器的一个实例添加到 mainarea,选择一些文本(使用我的功能)并按左箭头键,插入符号位置设置为选择的末尾...我不会在开头。 .. 怎么了? :S
【问题讨论】:
-
不要使用 KeyListeners,这是绝对不行的 ;-) 相反,使用键绑定 ..
-
IIRC,您可以在设置选择时将插入符号设置为开头。为此,您必须设置从结束位置到开始位置的选择。因此,当用户按下左键时,插入符号将位于选择的开始。这不是你想要达到的吗?
标签: java swing listener jtextarea textselection