社区
Java SE
帖子详情
如何在JTextArea中实现撤消功能
xsjohn
2006-09-16 02:20:04
如何在JTextArea中实现撤消功能,JTextArea是否有现成的方法可以调用?求教大人~~
...全文
154
1
打赏
收藏
如何在JTextArea中实现撤消功能
如何在JTextArea中实现撤消功能,JTextArea是否有现成的方法可以调用?求教大人~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mq612
2006-09-16
打赏
举报
回复
你要的是Undo和Redo吧?
真正操控Undo、Redo功能的是Document,下面写个小例子,希望对你有帮助:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.event.UndoableEditEvent;
import javax.swing.text.Document;
import javax.swing.undo.UndoManager;
public class Test extends JFrame {
private static final long serialVersionUID = -2397593626990759111L;
private JPanel pane = null;
private JButton undo = null, redo = null;
private JScrollPane sPane = null;
private JTextArea text = null;
private Document doc = null;
private UndoManager undomang = null;
public Test() {
super("Redo and Undo");
undomang = new UndoManager(){
private static final long serialVersionUID = -5960092671497318496L;
public void undoableEditHappened(UndoableEditEvent e) {
this.addEdit(e.getEdit());
}
};
text = new JTextArea();
doc = text.getDocument();
redo = new JButton(">>");
undo = new JButton("<<");
undo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if (undomang.canUndo())
undomang.undo();
}
});
redo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (undomang.canRedo())
undomang.redo();
}
});
pane = new JPanel();
pane.add(undo);
pane.add(redo);
doc.addUndoableEditListener(undomang);
sPane = new JScrollPane(text);
this.getContentPane().add(sPane);
this.getContentPane().add(pane, BorderLayout.NORTH);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(300, 200);
this.setVisible(true);
}
public static void main(String args[]) {
new Test();
}
}
Notepad:使用java编写的记事本,类似于在windows
中
找到的
这是使用类似于 windows
中
的 java 编写的记事本(文本编辑器)。 这几乎具有窗口记事本的所有
功能
。 此代码可供任何需要在其任何项目
中
实现
以下
功能
的人使用 在
JTextArea
(JTextComponent)
中
打开一个文本文件 将
JTextArea
(JTextComponent)
中
的文本保存为文本文件 在
JTextArea
(JTextComponent)
中
打印文本并打开用于设置页面的页面设置屏幕。
撤消
JTextArea
(JTextComponent)
中
的编辑 剪切、复制、粘贴和全选
JTextArea
(JTextComponent)
中
的所有文本 在
JTextArea
(JTextComponent)
中
双向查找和替换文本
JTextArea
(JTextComponent)
中
的自动换行文本。 这还包括一个 JFontChooser 来选择 JText
仿windows的记事本java基本
实现
实现
了记事本的大部分
功能
,适合新手看。 // 文本编辑区 private
JTextArea
editArea = new
JTextArea
(); // 菜单项 private JMenu[] menus = { new JMenu("文件(F)"), new JMenu("编辑(E)"), new JMenu("格式(E)"), new JMenu("查看(V)"), new JMenu("帮助(H)") }; private JMenuItem[] fileMenu = { new JMenuItem("新建(N) "), new JMenuItem("打开(O)... "), new JMenuItem("保存(S) "), new JMenuItem("另存为(A)... "), new JMenuItem("页面设置(U)... "), new JMenuItem("打印(P)... "), new JMenuItem("退出(X) ") }; private JMenuItem[] editMenu = { new JMenuItem("撤销(U) "), new JMenuItem("剪切(T) "), new JMenuItem("复制(C) "), new JMenuItem("黏贴(P) "), new JMenuItem("删除(L) "), new JMenuItem("查找(F)... "), new JMenuItem("查找下一个(N) "), new JMenuItem("替换(R)... "), new JMenuItem("转到(G)... "), new JMenuItem("全选(A) "), new JMenuItem("时间/日期(D) ") }; private JCheckBoxMenuItem formatMenu1 = new JCheckBoxMenuItem( "自动换行(W) "); private JMenuItem formatMenu2 = new JMenuItem("字体(F)... "); private JMenuItem checkMenu = new JMenuItem("状态栏(S) "); private JMenuItem[] helpMenu = { new JMenuItem("查看帮助(H) "), new JMenuItem("关于记事本(A) ") }; private JPopupMenu pmenus = new JPopupMenu(); private JMenuItem[] popupMenu = { new JMenuItem("撤销(U) "), new JMenuItem("剪切(T) "), new JMenuItem("复制(C) "), new JMenuItem("黏贴(P) "), new JMenuItem("删除(L) "), new JMenuItem("全选(A) "), }; // 剪切板引用 private Toolkit toolKit = Toolkit.getDefaultToolkit(); private Clipboard clipBoard = toolKit.getSystemClipboard(); // 其他变量 private boolean isNewFile = true; private File currentFile; private String oldTxt; // 撤销管理器 private UndoManager undo = new UndoManager(); private UndoableEditListener undoHandler = new UndoHandler();
实现
文本的复制和粘贴、文本的撤销和恢复(Swing
JTextArea
)
实现
文本的复制和粘贴、文本的撤销和恢复(Swing
JTextArea
) 文本的撤销和恢复是通过 addUndoableEditListener(UndoableEditListener listener)这个方法来注册
实现
的。只要是Document类及其子类都可以注册撤销和恢复的监听来
实现
文档的撤销和恢复,这是非常容易
实现
的。所以JTextComponent类以及其子类,JTextFie
java记事本
实现
转到和撤销
功能
本文是对java记事本转到和撤销
功能
的
实现
JTextArea
实现
右键复制,粘贴,删除等
功能
!
package rightMouse; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.event.ActionEvent; import java.awt.
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章