@Override
	public Rectangle getCharacterBounds(int i) {
		if (i < 0 || i >= getCharCount()) {
			return new Rectangle(0, 0, 0, 0);
		}
		RowColLocation rowCol = field.textOffsetToScreenLocation(i);
		int row = rowCol.row();
		int col = rowCol.col();
		Rectangle charBounds = field.getCursorBounds(row, col);
		Rectangle nextCharBounds = field.getCursorBounds(row, col + 1);

		charBounds.width = nextCharBounds.x - charBounds.x;
		// again the bounds give are relative to the layout and field panel and this method wants
		// a bounds relative to the field.
		charBounds.y += field.getHeightAbove();
		charBounds.x -= field.getStartX();
		return charBounds;
	}
Returns the field associated with this AccessibleField.
@return the field associated with this AccessibleField
Ghidra/Framework/Docking/src/main/java/docking/widgets/fieldpanel/AccessibleField.java