Трябва да начертая текст с Graphics#drawString
Рисувам върху JPanel
, който се променя както на ширина, така и на височина (чрез плъзгане).
Търся решение за генериране на граници, така че да мога автоматично да деформирам редовете и да адаптирам текста съответно, без преливания.
Реших, че мога просто да го кодирам сам, като получа дължината в пиксели с fontMetrics, но бих предпочел компонент, който прави това автоматично (drawString
също не поддържа '\n'
).
В документите, както и в този друг отговор намерих това:
Graphics2D g = ...;
Point2D loc = ...;
Font font = Font.getFont("Helvetica-bold-italic");
FontRenderContext frc = g.getFontRenderContext();
TextLayout layout = new TextLayout("This is a string", font, frc);
layout.draw(g, (float)loc.getX(), (float)loc.getY());
Rectangle2D bounds = layout.getBounds();
bounds.setRect(bounds.getX()+loc.getX(),
bounds.getY()+loc.getY(),
bounds.getWidth(),
bounds.getHeight());
g.draw(bounds);
Което рисува низа и границите, но те нямат ефект, така че няма късмет тук.
Всеки клас, който мога да използвам?