如何在JLabel中自动换文字?

时间:2014-10-17 07:55:50

标签: java swing jlabel

如何包装超出JLabel宽度的文字“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”? 我已经尝试将文本包含在html标签中,但没有运气。 请提出你的建议。

2 个答案:

答案 0 :(得分:11)

一种常见的方法是不使用JLabel而是使用带有自动换行和换行的JTextArea。然后,您可以装饰JTextArea,使其看起来像JLabel(边框,背景颜色等)。 [根据DSquare的评论编辑包含完整性的换行符]

另一种方法是在标签中使用HTML,seen here。需要注意的是

  1. 您可能需要处理HTML可能从纯文本解释/转换的某些字符

  2. 调用myLabel.getText()现在将包含HTML(可能包含HTML) 由于#1

  3. 而转义和/或转换的字符

    编辑:以下是JTextArea方法的示例:

    enter image description here

    import javax.swing.*;
    
    public class JLabelLongTextDemo implements Runnable
    {
      public static void main(String args[])
      {
        SwingUtilities.invokeLater(new JLabelLongTextDemo());
      }
    
      public void run()
      {
        JLabel label = new JLabel("Hello");
    
        String text = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
    //        String text = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa " + 
    //                      "quick brown fox jumped over the lazy dog.";
    
        JTextArea textArea = new JTextArea(2, 20);
        textArea.setText(text);
        textArea.setWrapStyleWord(true);
        textArea.setLineWrap(true);
        textArea.setOpaque(false);
        textArea.setEditable(false);
        textArea.setFocusable(false);
        textArea.setBackground(UIManager.getColor("Label.background"));
        textArea.setFont(UIManager.getFont("Label.font"));
        textArea.setBorder(UIManager.getBorder("Label.border"));
    
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(label, BorderLayout.NORTH);
        frame.getContentPane().add(textArea, BorderLayout.CENTER);
        frame.setSize(100,200);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
      }
    }
    

答案 1 :(得分:1)

将JLabel与html属性一起使用以证明文本正确。

        JLabel txtTitulo = new JLabel(
            String.format("<html><body style=\"text-align: justify;  text-justify: inter-word;\">%s</body></html>","Long text example aaaaaa bbbbbb aaaaaaaaaaaaaaaaaaaa.");
    );

文档:https://www.w3schools.com/cssref/css3_pr_text-justify.asp