gpt4 book ai didi

java - 单击某些 JComponent 时如何剪切/复制/粘贴文本到 JTextField?

转载 作者:行者123 更新时间:2023-12-01 23:39:21 24 4
gpt4 key购买 nike

我正在创建自定义弹出菜单,仅使用扩展的 JComponent 作为菜单项,并使用扩展的 JWindow 来保存它们。我的问题是 - 当单击(具有 MouseListener)时,如何从 JComponent 实例发送信号到 JTextField 以执行剪切/复制/粘贴操作?

编辑:

我会尝试更准确地解释。

JTextField 类(简化):

public class TextInputField extends JTextField implements FocusListener {

private MenuPopupWindow popUp;

public TextInputField() {


popUp = new MenuPopupWindow();//MenuPopupWindow class extends JWindow

MenuItem paste = new MenuItem("Paste",
new ImageIcon(getClass().getResource("/images/paste_icon.png")),
"Ctrl+V");//MenuItem class extends JComponent, has implemented MouseListener - and when mouseClicked(MouseEvent e) occurs, somehow action signal have to be sent to this class
MenuItem copy = ....
MenuItem cut = ....


Action pasteAction = getActionMap().get(DefaultEditorKit.pasteAction);
paste.setAction(pasteAction);//How to make it to work?


popUp.addMenuItem(paste);
popUp.addMenuItem(cut);
popUp.addMenuItem(copy);

}
}

怎样做才是正确的?

最佳答案

I'm creating custom popup menu, using just extended JComponent as a menu items and extended JWindow to hold them.

不太确定这意味着什么。

您应该只使用 JPopupMenu 并向其中添加 JMenuItems。阅读 Swing 教程中关于 Bringing Up a Popup Menu 的部分举个例子。

然后,如果您想要剪切/复制/粘贴功能,您可以使用 DefaultEditorKit 提供的默认操作:

popup.add( new JMenuItem(new DefaultEditorKit.CopyAction()) );

关于java - 单击某些 JComponent 时如何剪切/复制/粘贴文本到 JTextField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18195757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com