JLabel.setText()中的换行符

时间:2011-10-05 19:20:04

标签: java swing newline jlabel multiline

如何在使用JLabel.setText()时插入换行符?我试图使用Html,但似乎可以使它适用于setText,仅用于jLabel的初始声明

最初声明jlabel时的方法是:

label = new JLabel("<html>Hello World!<br>blahblahblah</html>");

我的代码:

textString += "<html> quantityTextField.getText() +
   theInventory.findItem(UPCTextField.getText()).toString() + <br> </html>";

purchaseInfo.setText( textString);

它显示html标签和方法名称,而不是方法返回的字符串

7 个答案:

答案 0 :(得分:5)

如果您的setText()来电更改了JLabel的首选尺寸,那么您需要在容器上调用revalidate()以重新进行布局。

看一下你添加的代码片段,我看到最后一行的内容 - 无论如何都不会做任何事情 - 以及很多错误引用的方法调用方法名称是HTML的一部分。如果你按照

的方式做某事
label.setText("<html>Hello World!<br>blahblahblah</html>");
label.getParent().revalidate();

你的换行应该出现。

答案 1 :(得分:4)

您的文字格式错误。这是您当前设置的字符串:

"<html>Hello World!<br>blahblahblah</html><html> quantityTextField.getText()+ theInventory.findItem(UPCTextField.getText()).toString() + <br> </html>"

现在告诉我问题不是很明显(顺便说一句,HTML不是你唯一的问题)......无论如何,有关更多信息,请参阅How to Use HTML in Swing Components

答案 2 :(得分:2)

textString+="<html> " + quantityTextField.getText()+ theInventory.findItem(UPCTextField.getText()).toString() + "<br> </html>";

好笑。

答案 3 :(得分:0)

您似乎正在使用您的html字符串连接。

围绕<html>代码中的文字并仅使用<html>代码一次。

答案 4 :(得分:0)

根据个人经验,我不会在JLabel中使用HTML标记。如果你没有做任何格式化(看起来你不是,除了插入换行符),你最好使用像'\ n'这样的字符代码,因为它的简单和大小。

[代码] label = new JLabel(“Hello World!\ nblahblahblah”);

textString + = quantityTextField.getText()+    theInventory.findItem(UPCTextField.getText())。toString()+“\ n”;

purchaseInfo.setText(textString); [/代码]

方法名称显示的原因是因为您将它们括在引号内。它将这些方法作为实际文本写入屏幕,而不是一组要执行的指令。

答案 5 :(得分:0)

任何不测试他们答案的人都应该使用&#34;我认为&#34;。

正如其他人所说,\ n不会工作,.revalidate()是不必要的,而html是。见Newline in JLabel

答案 6 :(得分:0)

您好,兄弟在“ pre”之间插入新行

JLabel l=new JLabel("<html><pre>Hello world\nBlahblahblah</pre></html>");

我希望这对您有帮助