这是我的代码:
JLabel JL_Output = new JLabel(Reponse);
JL_Output.setBorder(BorderFactory.createTitledBorder("Output: "));
JL_Output.setPreferredSize(new Dimension(450, 175));
JL_Output.setBackground(Color.red);
所以我的问题是我的Response String太长了,无法在一行中查看。 所以我想使用带有/ br的html我不能整合这些应用程序,因为我无法进入"进入"在字符串中:/
我想以4行显示,就像这样 响应值:
Enter the angle offset
Units : [degrees]
Range : [-090<+090]
Current : [+000] >> ERROR
答案 0 :(得分:1)
假设Response
是一个字符串,你可以这样做:
String formattedResponse = Response.replaceAll("\\]", "\\]<br />");
JLabel JL_Output = new JLabel(formattedResponse);
...
这应该用一个闭括号和一个breakline语句替换所有结束括号,这应该是你需要的。
编辑:根据您的评论,您可以使用类似下面的代码来执行您需要的操作:
String formattedResponse = Response.replaceAll("\\s{4,}", "<br />");
JLabel JL_Output = new JLabel("<html>" + formattedResponse + "</html>");
上面的代码将匹配由4个或更多连续空格字符组成的Response
字符串中的任何一个,并将其替换为<br />
。
答案 1 :(得分:0)
我从你的描述中了解到,你收到的文字是长一行并且没有换行符?那么为什么不在你想要的地方创建第二个带换行符的String呢?
但也许您可以使用“JTextarea”禁用它,使其无法修改:
JTextArea textArea = new JTextArea(
"This is an editable JTextArea. " +
"A text area is a \"plain\" text component, " +
"which means that although it can display text " +
"in any font, all of the text is in the same font."
);
textArea.setFont(new Font("Serif", Font.ITALIC, 16));
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
当然,您可以将字符串转换为HTML。 请参阅此文章以了解换行符的工作原理: Multiline text in JLabel