当前位置: 代码迷 >> Java相关 >> java TextArea 中如何确定光标相对于本窗体原点的坐标值(像素值)
  详细解决方案

java TextArea 中如何确定光标相对于本窗体原点的坐标值(像素值)

热度:1036   发布时间:2013-05-04 10:39:56.0
java TextArea 中如何确定光标相对于本窗体原点的坐标值(像素值)
我是想要textare中光标在第几行,第几列;在不自动换行的情况下我是做到了,可以根据\n来判到;可在自动换行的情况下,它会因为列到达最大宽度而自动硬换行,这就比较麻烦,最主要的是当你拉动窗体时,TextArea是会跟着变化的,这时它的宽度更是不好确定,本来我想着用它的getWidth()或getColumns()方法来得到它的列宽,可是试验过才知道,它只是返回你创建此TextArea时设置的宽度,不管你以后怎么拉动使其变化,它还是只返回原始初创时的宽度值,所以这个就不能用了啊

后来,后来,后来我想到一个想法,就是如果我能知道光标相对于窗体原点的坐标(应该是像素值的吧),那我就可以判断当它的Y坐标第次第一次变大时就是换行了,这样我甚至都不需要去判断\n来计算行列了,这个方法的通用性更高,可以对所有的情况进行计算,可是我现在纠结的是怎么能得到光标的这个坐标呢,我想着这应该会用到窗体更上层的父类之类的东西吧,这些已经封好的子类中可能已经不能满足了,可是我看源码看不懂啊,谁能给我解答一下这个问题啊?
搜索更多相关的解决方案: 如何  

----------------解决方案--------------------------------------------------------
那就在jtextarea中添加一个鼠标事件就可以了吧....然后通过鼠标事件获得鼠标的坐标...但是这个鼠标和光标不是同一个概念吧...

----------------解决方案--------------------------------------------------------
应该不一样吧,如果只是监听鼠标,那么对于方向键对光标的移动以及打字时光标的移动,状态栏里的行列值应该是不会有变化的,这样显然不合适啊!
----------------解决方案--------------------------------------------------------
  相关解决方案