如何在 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); } }); } }