如何在 Java 中在 JTextArea 中实现文本换行和自动换行?

awtjavaobject oriented programmingprogrammingswing

JTextArea  是一个多行文本组件,用于显示文本或允许用户输入文本,当我们尝试实现 JTextArea  组件的功能时,它将生成一个 CaretListener  接口。 JTextArea 类继承自 Java 中的 JTextComponent  类。

在下面的示例中,我们可以实现一个 JTextArea  类,用户可以使用 ItemListener  接口选择 自动换行 行换行 复选框。

示例

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class JTextAreaTest {
   public static void main(String[] args ) {
      EventQueue.invokeLater(new Runnable() {
         @Override
         public void run() {
            JFrame frame = new JFrame("JTextArea Test");
            frame.setSize(350, 275);
            final JTextArea textArea = new JTextArea(15, 65);
            frame.add(new JScrollPane(textArea));
            final JCheckBox wordWrap = new JCheckBox("word wrap");
            wordWrap.setSelected(textArea.getWrapStyleWord());
            wordWrap.addItemListener(new ItemListener() {
               @Override
               public void itemStateChanged(ItemEvent ie) {
                  textArea.setWrapStyleWord(wordWrap.isSelected());
               }
            });
            frame.add(wordWrap, BorderLayout.NORTH);
            final JCheckBox lineWrap = new JCheckBox("line wrap");
            lineWrap.setSelected(textArea.getLineWrap());
            lineWrap.addItemListener(new ItemListener() {
               @Override
               public void itemStateChanged(ItemEvent ie) {
                  textArea.setLineWrap(lineWrap.isSelected());
               }
            });
            frame.add(lineWrap, BorderLayout.SOUTH );
            frame.setLocationRelativeTo(null);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
            frame.setVisible(true);
         }
      });
   }
}

输出


相关文章