首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在将文本粘贴到JTextComponent (Java)之后获取操作

在将文本粘贴到JTextComponent (Java)之后获取操作
EN

Stack Overflow用户
提问于 2010-06-02 18:57:21
回答 2查看 442关注 0票数 1

这真让我费解。

我有一个JTextComponent,我为它添加了一个使用JPopupMenu和DefaultEditorKit.Cut\Copy\PasteAction()右键单击剪切\复制\粘贴菜单。

代码语言:javascript
运行
复制
JMenuItem cutItem = new JMenuItem(new DefaultEditorKit.CutAction());
JMenuItem copyItem = new JMenuItem(new DefaultEditorKit.CopyAction());
JMenuItem pasteItem = new JMenuItem(new DefaultEditorKit.PasteAction());

对于每个操作,我都添加了一个动作侦听器,它捕获JTextComponent的文本,我想在函数中使用它。

代码语言:javascript
运行
复制
final ActionListener textFieldListener = new ActionListener() {
@Override public void actionPerformed(ActionEvent e){someGlobalFunction(textComponent.getText());
}
}; 

..。

代码语言:javascript
运行
复制
cutItem.addActionListener(textFieldListener );
copyItem.addActionListener(textFieldListener );
pasteItem.addActionListener(textFieldListener );

但是,我唯一能得到的文本是字符串,它是在我将\ can剪切到组件之前的,而不是在后面。

有什么明显的解决办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-02 19:36:52

将代码包装在actionPerformed()方法中的SwingUtilities.invokeLater(.)中,这将将代码添加到EDT的末尾,因此它应该在剪切/复制/粘贴命令之后执行。

票数 1
EN

Stack Overflow用户

发布于 2010-06-02 19:32:50

这是因为你不听你的文本字段,你听菜单:-)

将侦听器放在文本字段,或文本字段的文档上,或者FilterDocument,甚至您自己的文档上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2960703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档