import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.undo.UndoManager;
public class Test extends JFrame{
private JTextArea text;
private JButton un,re;
private UndoManager und;
private Container container;
public Test(){
super("Undo&Redo");
und = new UndoManager();
container = getContentPane();
text =new JTextArea(10,15);
text.setWrapStyleWord(true);
text.getDocument().addUndoableEditListener(und);
un = new JButton("撤销");
un.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0){
if (und.canUndo())
und.undo();
}
}
);
re = new JButton("重做");
re.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0){
if (und.canRedo())
und.redo();
}
}
);
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
panel.add(un);
panel.add(re);
container.add(text);
container.add(panel,BorderLayout.SOUTH);
setVisible(true);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]){
Test test = new Test();
}
}
本文介绍了一个使用Java Swing实现文本编辑器中撤销与重做功能的例子。通过继承JFrame创建了Test类,并利用UndoManager管理文本区域内的编辑操作。文中详细展示了如何响应用户操作并更新界面。
74

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



