gpt4 book ai didi

java - 使 JPopupMenu 在项目选择时不关闭

转载 作者:行者123 更新时间:2023-12-01 04:46:53 25 4
gpt4 key购买 nike

这就是我想做的。我正在制作一个弹出窗口,每次建议 10 个单词,并可以选择显示接下来的 10 个建议。我将其设计为包含 11 个项目的 JPopupMenu; 10 条建议和 1 个“显示更多...”选项。

enter image description here

在“显示更多...”上运行的代码会删除所有先前的项目,并添加新的项目(足够简单)。

问题是,当我按“显示更多...”时,JPopupMenu 关闭(我认为这是默认行为)。我尝试过解决这个问题,甚至创建一个全新的弹出窗口并将其显示在同一位置。

是否有一种简单的方法可以使 JPopupMenu 在按下其中一项时不会消失?预先感谢!

最佳答案

我一直将其用于复选框项目:

import javax.swing.JCheckBoxMenuItem;
import javax.swing.JComponent;
import javax.swing.MenuSelectionManager;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicCheckBoxMenuItemUI;

public class StayOpenCheckBoxMenuItemUI extends BasicCheckBoxMenuItemUI {

@Override
protected void doClick(MenuSelectionManager msm) {
menuItem.doClick(0);
}

public static ComponentUI createUI(JComponent c) {
return new StayOpenCheckBoxMenuItemUI();
}

}

然后,注册它:

myJCheckBoxMenuItem.setUI(new StayOpenCheckBoxMenuItemUI());

根据“显示更多”项目的菜单项类型,类似的解决方案应该有效。只需子类化正确的 UI,而不是 BasicCheckBoxMenuItemUI

关于java - 使 JPopupMenu 在项目选择时不关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15681972/

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