2012-02-16 62 views
1

如何找到将文本保存在StringBuffer中的Java textarea中的光标位置?我正试图在文本编辑器中实现退格功能。该API列出了如何设置数据。我需要获取光标位置,以了解光标位于哪个字符位置,而不是光标的屏幕全局坐标。基于字符串的光标定位

任何援助真诚赞赏。

+0

您究竟如何管理文本,即如何连接和更新JTextArea和StringBuffer?你是继承AbstractDocument/AbstractDocument.Content吗?你能告诉我们代码吗? – DNA 2012-02-16 22:35:52

+0

我没有使用JTextArea。这只是为了给我的问题提供背景。编辑器的用户界面从JFrame扩展而来。我如何提交代码?我会说这个编辑窗格很长。 – 2012-02-16 22:58:34

回答

2

您必须在TextArea中为按键事件编写KeyListeners,并且保留您在TextArea中的位置的虚拟光标。然后将该偏移量映射到您的StringBuffer,没有神奇的方式来做到这一点。

+0

谢谢你的建议Jarrod Roberson – 2012-02-16 23:30:18

1

如果您使用的是Swing JTextArea,请使用JTextArea.getCaretPosition()

如果您使用的是AWT TextArea,请参阅Jarrod Roberson的答案。

+0

UI编程(和编程)对我来说还是新的,我甚至没有想过要考虑Swing或AWT。我刚刚被告知通过这种做法学习会有所帮助,并且提供了一个纯粹的手工编写的用户界面来尝试和解决问题。感谢您的意见。它照亮我的方式。 – 2012-02-16 23:06:18

+0

Swing学习起来比较复杂,但比AWT更灵活更强大。您可能会发现[本文](http://www.ibm.com/developerworks/grid/library/os-swingswt/)比较AWT,Swing和SWT有用。 – 2012-02-16 23:10:24

+0

你已经为我自己代表了不便。我衷心感谢Kevin K. – 2012-02-16 23:15:45