多行文本域的简单应用

这个Java应用程序展示了如何使用JTextArea和DocumentListener来实现实时文本同步。当在一个多行文本域中进行插入、删除或更改操作时,另一个文本域会自动更新以显示相同的内容。程序创建了两个具有滚动条的JTextArea实例,并设置为自动换行。通过监听DocumentEvent,实现了文本变化时的即时同步。


import java.awt.Container;
import java.awt.FlowLayout;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;

public class TextAreaApp extends JFrame implements DocumentListener
{
  private JTextArea baseText,copyText;
  private JScrollPane sp1,sp2;
  public TextAreaApp()
  {
      setTitle("多行文本框的应用");
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      Container cp=getContentPane();
      cp.setLayout(new FlowLayout());
      baseText=new JTextArea(8,6);
      copyText=new JTextArea(8,6);
      baseText.setLineWrap(true);
      copyText.setLineWrap(true);
      sp1=new JScrollPane(baseText);
      sp1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
      cp.add(sp1);
      sp2=new JScrollPane(copyText);
      sp2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
      cp.add(sp2);
      baseText.getDocument().addDocumentListener(this);
      setSize(240,200);
      
  }
  public void insertUpdate(DocumentEvent e)
  {
      copyText.setText(baseText.getText());
  }
  public void removeUpdate(DocumentEvent e)
  {
      copyText.setText(baseText.getText());
  }
  public void changedUpdate(DocumentEvent e)
  {
      copyText.setText(baseText.getText());
  }
  public static void main(String[] args)
  {
      TextAreaApp frame=new TextAreaApp();
      frame.show();
  }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值