我需要繪製的文本與Graphics#drawStringdrawString之秋千:文本邊界和換行
我借鑑了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);
這確實提請串和邊界,但他們沒有任何影響,所以沒有運氣:
在文檔以及其他this答案,我發現這一點。
我可以使用的任何課程?
謝謝回答。我爲此付出了努力,但沒有其他辦法嗎? 這樣做會有很多麻煩,因爲它不是一個統一的文本。這是很多小字符串,沒有被分配,具有不同的格式,顏色,規格。 這裏有一個很簡單的模式,其中有一些:http://imgur.com/4zKTppM 紅色的表格是虛構的,僅用於顯示對齊。 字符串獨立更新,這個面板非常小,有相當多的人.. –