[Top ページ] [他のサンプル]

UndoableTextBoxSample.java


import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.undo.UndoManager;
 
 
public class UndoableTextBoxSample extends JApplet implements ActionListener {
	private JTextArea textArea_ = new JTextArea();
	private UndoManager undoManager_ = new UndoManager();
	
	public UndoableTextBoxSample() {
		// ----------------------------------------
		// UI
		// ----------------------------------------
		setLayout(new BorderLayout());
		
		// TextBox を張り付ける
		add(new JScrollPane(textArea_), BorderLayout.CENTER);
		
		// Undo するボタン
		JButton btnUndo = new JButton("Undo");
		add(btnUndo, BorderLayout.NORTH);
		
		// Undo するボタンが押されたら、このインスタンスの actionPerformed が
		// 呼び出されるようにする。
		btnUndo.addActionListener(this);
		
		// ----------------------------------------
		// Undo 可能にする
		// ----------------------------------------
		
		// これで、undoManager_ オブジェクトに編集内容が記録されるようになる。
		textArea_.getDocument().addUndoableEditListener(undoManager_);
	}
	
	// Undo ボタンが押された...
	public void actionPerformed(ActionEvent e) {
		if (undoManager_.canUndo()) {
			undoManager_.undo();
		}
	}
}