Java中带对齐文本的多行标签/区域/窗格

Java中带对齐文本的多行标签/区域/窗格,java,swing,jlabel,jtextarea,jtextpane,Java,Swing,Jlabel,Jtextarea,Jtextpane,我有一个有趣的任务。考虑一个未知长度的字符串内容< /代码>。我想用带有文本的字体显示内容。我需要知道如果我指定宽度,这将占用多少高度。我想在屏幕中间显示这个文本,但是它必须有一个宽度代码>宽度< /> > 因此,我想做如下的事情 //create a JTextPane or JTextArea pane.setText(content); pane.setFont(font); //set the width of the pane here //get the height of the

我有一个有趣的任务。考虑一个未知长度的<代码>字符串内容< /代码>。我想用带有文本的
字体显示
内容
。我需要知道如果我指定
宽度
,这将占用多少
高度。我想在屏幕中间显示这个文本,但是它必须有一个宽度<>代码>宽度< /> > 

因此,我想做如下的事情

//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);

我如何才能做到这一点?

通常,对正是以另一种方式进行的

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

  • 在单词之间加空格。更简单,但视觉上不吸引人
  • 在字母之间加空格。这就是所谓的

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

对齐:左?对吗?居中填满另请参见
TextLayout
上的内容。请参见以了解“对齐”文本是什么。是否指定宽度?看起来您需要根据要显示的字体大小和字符串来计算宽度。我正在指定宽度,并需要确定高度。我确信这必须通过()或()来解决几次