0

如何获得以像素为单位的插入符号位置JTextField?有一个方法getCaret().getDot(),但它返回符号计数,而不是像素。除此之外还有什么方法FontMetrics吗?

4

2 回答 2

3

通过 API,您可以使用:

int pixelPosition = textField.modelToView( textField.getCaretPosition() ).x;
于 2013-09-06T00:23:07.937 回答
2

鉴于JTextField someJTextField以下代码应该为您提供护理的像素位置:

FontMetrics fm = myJTextField.getFontMetrics();
int caret = someJTextField.getCaret().getDot();


int pixelPosition = fm.stringWidth(myJTextField.getText(0, caret)) -
                                   myJTextField.getScrollOffset();
于 2013-09-05T18:42:44.653 回答