如何在JTextField
中以像素为单位获取插入位置?有一个方法getCaret().getDot()
,但它返回符号计数,而不是像素。除FontMetrics
之外还有其他方法吗?
答案 0 :(得分:3)
您可以使用API:
int pixelPosition = textField.modelToView( textField.getCaretPosition() ).x;
答案 1 :(得分:2)
鉴于JTextField someJTextField
,以下代码应该为您提供护理的像素位置:
FontMetrics fm = myJTextField.getFontMetrics();
int caret = someJTextField.getCaret().getDot();
int pixelPosition = fm.stringWidth(myJTextField.getText(0, caret)) -
myJTextField.getScrollOffset();