其他提示

public class JMultilineLabel extends JTextArea{
    private static final long serialVersionUID = 1L;
    public JMultilineLabel(String text){
        super(text);
        setEditable(false);  
        setCursor(null);  
        setOpaque(false);  
        setFocusable(false);  
        setFont(UIManager.getFont("Label.font"));      
        setWrapStyleWord(true);  
        setLineWrap(true);
        //According to Mariana this might improve it
        setBorder(new EmptyBorder(5, 5, 5, 5));  
        setAlignmentY(JLabel.CENTER_ALIGNMENT);
    }
} 

这完全找我相同,但其丑陋

另一个简单的方法(但改变文本样式位)是使用<pre></pre> HTML块。

这将持续存在任何格式,如果你使用的是字符串从用户输入框中输入进来的用户。

示例:

JLabel label = new JLabel("<html><pre>First Line\nSecond Line</pre></html>"); 

在JLabel写入多行文本的直接过程是:

JLabel label = new JLabel("<html>First Line<br>Second Line</html>"); 

JLabel或任何Swing组件使用HTML的问题是,你再要的风格为HTML,不跟平时setFontsetForeground等,如果你真行与精细。

否则,你可以使用像 MultilineLabel 从基德,延伸JTextArea。它的部分他们的开源的层常见合

的JLabel可以接受的HTML代码。也许你可以尝试使用<br>标签。

示例:

JLabel myLabel = new JLabel();
myLabel.setText("<html> This is a <br> multi-line string </html>");
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top