如标题所示:我需要将JLabel安装到JFrame中,但是JLabel中的文本太长,所以我需要添加一些换行符. JLabel中的文本是从在线
XML文件获得的,因此我不能将文本更改为包含换行符.
Element element = (Element)nodes1.item(i); String vær = getElementValue(element,"body"); String v = vær.replaceAll("<.*>","" ); String forecast = "Vær: " + v;
在这种情况下,字符串我想添加一些linebreaks到字符串v.String v包含从xml文件中解析的数据.字符串预测将返回并设置为JLabel的文本.
只要问一些事情是不清楚的,谢谢提前!
解决方法
我建议使用JTextArea代替,并打开包装.在JLabel中执行此操作的唯一方法就是设置换行符< br />,如果您不知道该文本,您将无法正常工作(至少不容易).
JTextArea更加灵活.默认情况下,它看起来是不同的,但你可以围绕一些显示属性来使它看起来像一个JLabel.
一个简单的修改使用示例摘自How to Use Text Areas教程 –
public class JTextAreaDemo { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { createAndShowGUI(); } }); } private static void createAndShowGUI(){ final JFrame frame = new JFrame("JTextArea Demo"); frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); final JPanel panel = new JPanel(); JTextArea textArea = new JTextArea( "If there is anything the nonconformist hates worse " + "than a conformist,it's another nonconformist who " + "doesn't conform to the prevailing standard of nonconformity.",6,20); textArea.setFont(new Font("Serif",Font.ITALIC,16)); textArea.setLineWrap(true); textArea.setWrapStyleWord(true); textArea.setOpaque(false); textArea.setEditable(false); panel.add(textArea); frame.add(panel); frame.pack(); frame.setVisible(true); } }