【问题标题】:Initiate cut / copy / paste action programmatically [duplicate]以编程方式启动剪切/复制/粘贴操作[重复]
【发布时间】:2016-01-14 10:48:41
【问题描述】:

我想将 Cut / Copy / Paste 项目添加到我的上下文菜单中,我已经在我的 JTree 控件中可用。

我希望这些操作仅用于启动默认操作“剪切”、“复制”、“粘贴”操作,这些操作已由默认 JTree 实现,并尽可能少地使用样板代码。我已经检查了动作在树上的 ActionMap 中是否可用,我可以执行 getActionMap().get("cut") 来获取相应的动作,但我不知道如何进行 - 有一个名为 SwingUtilities.notifyAction 的方法(这在处理树中的默认键绑定时使用),但是这种方法需要一些我没有准备好的参数值。

我希望代码可能有点像这样,只需要使用不同的方法而不是 notifyAction,或者可能会为缺少的参数构造一些合理的值:

        Action action = tree.getActionMap().get("cut");
        if (action != null) {
            SwingUtilities.notifyAction(action);
        }

【问题讨论】:

  • 查看 Vineet Kosaraju 的回答:stackoverflow.com/questions/20343716/…
  • @ManojVadehra 感谢您的努力,但这对于目的而言显然过于冗长。我无意实现剪贴板操作,它们已经在容器中实现了,我只是想触发或调用现有的实现。
  • new JMenuItem(action) Action 和JMenuItem。你可能会发现你需要为按钮提供文本,但看看它会把你带到哪里

标签: java swing action


【解决方案1】:

“我想将剪切/复制/粘贴项目添加到我的 JTree 控件中已有的上下文菜单中。”

你说的是 JPopupMenu 吗?如果是,您可以添加 JMenuItem 进行剪切、复制和粘贴,然后在所有这些上使用 addActionListener()。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-01
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 2013-05-13
    • 1970-01-01
    相关资源
    最近更新 更多