在文本粘贴到JTEXTCOMPONEN(JAVA)之后进行动作
-
23-10-2019 - |
题
这真的让我感到困惑。
我有一个 JTextComponent
为此,我添加了使用jpopupmenu和 DefaultEditorKit.Cut\Copy\PasteAction()
.
JMenuItem cutItem = new JMenuItem(new DefaultEditorKit.CutAction());
JMenuItem copyItem = new JMenuItem(new DefaultEditorKit.CopyAction());
JMenuItem pasteItem = new JMenuItem(new DefaultEditorKit.PasteAction());
对于每个动作,我都添加了一个操作侦听器,该操作侦听器抓住了JTEXTCOMPONENT的文本,我想在功能中使用。
final ActionListener textFieldListener = new ActionListener() {
@Override public void actionPerformed(ActionEvent e){someGlobalFunction(textComponent.getText());
}
};
...
cutItem.addActionListener(textFieldListener );
copyItem.addActionListener(textFieldListener );
pasteItem.addActionListener(textFieldListener );
但是,我唯一能保留的文字是它是字符串 前 我将粘贴切入组件,而不是之后。
有明显的解决方案吗?
解决方案
将代码包裹在ActionPerformed()方法中的swingutilities.invokelater(...)中,这将在EDT的结尾中添加代码,以便在剪切/复制/粘贴命令之后执行。
其他提示
这是因为您不听文本字段,而是听菜单:-)
在您的文本字段,文本字段,也许是过滤器文档,甚至是您自己的文档上放置侦听器。
不隶属于 StackOverflow