如何在使用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标签和方法名称,而不是方法返回的字符串
答案 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>");
我希望这对您有帮助