加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 返回给定JTextPane位置的行号的方法?

发布时间:2020-12-15 04:50:22 所属栏目:Java 来源:网络整理
导读:我正在寻找一种方法来计算JTextPane中给定文本位置的行号,并启用包装. 例: This a very very very very very very very very very very very very very very very very very very very very very very long line. This is another very very very very very
我正在寻找一种方法来计算JTextPane中给定文本位置的行号,并启用包装.

例:

This a very very very very very very very very very very very very very very very very very very very very very very long line.
This is another very very very very very very very very very very very very very very very very very very very very very very long line.|

光标位于第四行,而不是两行.

有人可以为我提供该方法的实现:

int getLineNumber(JTextPane pane,int pos)
{
     return ???
}

解决方法

试试这个

/**
   * Return an int containing the wrapped line index at the given position
   * @param component JTextPane
   * @param int pos
   * @return int
   */
  public int getLineNumber(JTextPane component,int pos) 
  {
    int posLine;
    int y = 0;

    try
    {
      Rectangle caretCoords = component.modelToView(pos);
      y = (int) caretCoords.getY();
    }
    catch (BadLocationException ex)
    {
    }

    int lineHeight = component.getFontMetrics(component.getFont()).getHeight();
    posLine = (y / lineHeight) + 1;
    return posLine;
  }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读