基于字符串的光标定位
如何在 Java 文本区域(文本保存在 StringBuffer 中)中定位光标位置?我正在尝试在文本编辑器中实现退格功能。 API 列出了如何设置数据。我需要获取光标位置,以了解光标位于哪个字符位置,而不是光标的屏幕全局坐标。
衷心感谢任何帮助。
How do I locate the cursor position in a Java textarea where the text is held in a StringBuffer? I am trying to implement the backspace function in a text editor. The API lists how to set data. I need to get the cursor position, to know at which character position the cursor is, not the onscreen global coordinates of the cursor.
Any assistance is sincerely appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您必须编写
KeyListeners
TextArea
中的按键事件,并在TextArea
中保留虚拟光标。然后将该偏移量映射到您的 StringBuffer 中,没有什么神奇的方法可以做到这一点。You have to write
KeyListeners
for keypress events in theTextArea
and keep a virtual cursor of where you are in theTextArea
. Then map that offset into yourStringBuffer
, there is no magic way to do it.如果您使用的是 Swing
JTextArea
,使用JTextArea.getCaretPosition()
。如果您使用的是 AWT
TextArea
,请参阅贾罗德·罗伯森的回答。If you are using a Swing
JTextArea
, useJTextArea.getCaretPosition()
.If you are using an AWT
TextArea
, see Jarrod Roberson's answer.