Java中带有Justified文本的多行标签/区域/窗格

时间:2012-12-31 19:20:56

标签: java swing jlabel jtextarea jtextpane

我有一项有趣的任务。考虑长度未知的String content。我希望content显示带有Justified文字的Font font。如果我指定height,我需要知道这会占用width。我想在屏幕中间显示此文本,但其宽度必须为width

因此,我想做以下事情。

//create a JTextPane or JTextArea
pane.setText(content);
pane.setFont(font);
//set the width of the pane here
//get the height of the full text block if its justified
pane.setLocation(screenWidth/2 - width/2, screenHeight/2, height/2);

我该怎么做?

1 个答案:

答案 0 :(得分:1)

通常情况下,理由是相反的。

文本具有固定的高度,您可以通过以下方式之一调整文本的宽度:

  • 在单词之间添加空格。更容易,但不具有视觉吸引力。
  • 在字母之间添加空格。这称为kerning

如果您调整高度以使宽度正确,则文本中的每一行都会有不同的高度。