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

被折叠的 条评论
为什么被折叠?



