JTextArea文字的获取及其显示到JLabel中时的换行

本文介绍如何使用Java Swing中的JTextArea设置自动换行,并将文本内容转换为HTML格式以便在JLabel中正确显示多行文本。

JTextArea文字的获取及其显示到JLabel中时的换行。

用html标签可以实现换行,但超出JLabel显示宽度却仍不能自动换行,待解决。

见代码。

import javax.swing.*;
import java.awt.*;

public class JTextAreaTest extends JFrame {
    public JTextAreaTest() {
        setLayout(new BorderLayout());
        setSize(500, 500);
        setTitle("定义自动换行的文本域");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        Container c = getContentPane();
        JTextArea ta = new JTextArea("", 6, 6);
        ta.setLineWrap(true);
        JLabel jl = new JLabel("");
        JButton jb = new JButton("提交");
        /*ta.setBounds(5, 5, 10, 50);
        jl.setBounds(5,5,10,50);
        jb.setBounds(5, 5, 10, 50);*/
        jl.setPreferredSize(10);
        c.add(ta, BorderLayout.NORTH);
        c.add(jl, BorderLayout.CENTER);
        c.add(jb, BorderLayout.SOUTH);
        jb.addActionListener(e -> {
            String str = ta.getText().replace("\n", "<br>");
            String str2 = "<html>" +str + "</html>";                  //用html标签实现jlabel中的文字换行
            jl.setText(str2);
        });
        setVisible(true);
    }
    public static void main(String[] args) {
        new JTextAreaTest();
    }
}

在 `JTextArea` 中换行添加文字有多种实现方法。 #### 方法一:使用换行符 `\n` 可以通过在要添加的文字中加入 `\n` 来实现换行。示例代码如下: ```java import javax.swing.*; import java.awt.*; public class JTextAreaNewLineExample { public static void main(String[] args) { JFrame frame = new JFrame("JTextArea New Line Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 300); frame.setLocationRelativeTo(null); JTextArea textArea = new JTextArea(); // 添加第一行文字 textArea.append("第一行文字\n"); // 添加第二行文字 textArea.append("第二行文字\n"); JScrollPane scrollPane = new JScrollPane(textArea); frame.add(scrollPane); frame.setVisible(true); } } ``` 在上述代码中,通过 `append` 方法添加文字,并在文字末尾添加 `\n` 来实现换行。 #### 方法二:先设置自动换行,再添加文字 可以设置 `JTextArea` 自动换行,然后添加文字。示例代码如下: ```java import javax.swing.*; import java.awt.*; public class JTextAreaAutoNewLineExample { public static void main(String[] args) { JFrame frame = new JFrame("JTextArea Auto New Line Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 300); frame.setLocationRelativeTo(null); JTextArea textArea = new JTextArea(); // 设置自动换行 textArea.setLineWrap(true); textArea.setWrapStyleWord(true); // 添加文字 textArea.append("这是一段较长的文字,当到达文本区域边界时会自动换行。"); JScrollPane scrollPane = new JScrollPane(textArea); frame.add(scrollPane); frame.setVisible(true); } } ``` 在上述代码中,通过 `setLineWrap(true)` 和 `setWrapStyleWord(true)` 方法设置 `JTextArea` 自动换行,当添加的文字到达文本区域边界时会自动换行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值