如何在 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 次瀏覽

開啟你的職業

完成課程即可獲得認證

開始
廣告