gpt4 book ai didi

java - 一个 jPopup 用于多个控件

转载 作者:行者123 更新时间:2023-12-02 08:25:21 26 4
gpt4 key购买 nike

我有这样的代码:

    jTextArea1.add(jPopupMenu1);
jTextArea1.setComponentPopupMenu(jPopupMenu1);

jTextField1.add(jPopupMenu2);
jTextField1.setComponentPopupMenu(jPopupMenu2);

对于菜单项,我有操作:

private void CopyActionPerformed(java.awt.event.ActionEvent evt) {
jTextArea1.copy();

}
private void Copy1ActionPerformed(java.awt.event.ActionEvent evt) {
jTextField1.copy();
}

现在我认为最好对所有文本组件使用一个弹出窗口,如何传递有关单击哪个组件来复制文本的信息?也许对于这种情况有一些更通用的解决方案?

最佳答案

Action 应该通过扩展TextAction来创建。 TextAction 类有一个方法,该方法将返回最后获得焦点的文本组件。然后可以在弹出菜单或添加到菜单栏的菜单上使用此操作。因此创建菜单项的基本代码是:

JMenuItem copy = new JMenuItem( new CustomAction() );

但是,它比这更容易,因为 DefaultEditorKit 已经提供了默认的复制操作,因此您需要做的就是:

JMenuItem copy = new JMenuItem( new DefaultEditorKit.CopyAction() );

关于java - 一个 jPopup 用于多个控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4636298/

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