Может ли кто-нибудь помочь мне найти способ масштабировать строку / символ в Java (Graphics2D), чтобы он точно соответствовал прямоугольнику заданного размера (чтобы он касался прямоугольника изнутри)?
Это то, что я имею до сих пор:
String s = "S"; // always a single character!
Rectangle rect = getRect(); // defines the desired size and position
AffineTransform transform = new AffineTransform();
transform.setToTranslation(rect.getX(), rect.getY());
transform.scale(rect.getWidth() / (double) fm.stringWidth(s),
rect.getHeight() / (double) fm.getAscent());
FontRenderContext frc = image.getFontRenderContext();
TextLayout tl = new TextLayout(s, g2d.getFont(), frc);
Shape shape = tl.getOutline(transform);
g2d.setClip(shape);
g2d.fill(shape.getBounds());
Проблема Я запустил этот код в том, что хотя строка масштабируется так, чтобы приблизительно соответствовать размеру прямоугольников, она не соответствует ей точно, т.е. он не касается границ прямоугольников изнутри (что я и хочу!).
Помогает ли использование другого шрифта? Я использую моноширинный шрифт на данный момент.
Или мне нужно сделать масштабирование по-другому?
Спасибо за помощь!