如何在 Java 中的 JTextArea 中实现文字自动换行和单词自动换行?


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);
         }
      });
   }
}

输出

更新于: 07-Feb-2020

848 次浏览

开启你的职业

完成课程即可获得认证

开始
广告
© . All rights reserved.