gpt4 book ai didi

java - 强制 JPopupMenu 禁用其所有者 JFrame 上的悬停效果?

转载 作者:行者123 更新时间:2023-11-30 05:05:35 30 4
gpt4 key购买 nike

当我右键单击 JFrame 中的 JTable 时,我会显示 JPopupMenu。如果我让 JPopupMenu 按原样显示并用鼠标移动到 JTable,我仍然可以将鼠标悬停在其行上。

这不是 Windows 应用程序的默认行为。在正常情况下,如果程序中出现弹出菜单,它会阻止弹出所有者窗口上的任何悬停操作。

我可以用 Java 做同样的事情吗?

最佳答案

解决此问题的一种方法是在 GUI 元素之一中设置一个实例变量来标记是否启用悬停事件。我在下面展示了它的工作原理,但它不是完整的形式,您还需要在 JPopupMenu 关闭时重新启用悬停,并在触发之前检查 ENABLE_HOVER 字段的状态悬停效果。

public MyTable extends JTable {

private boolean ENABLE_HOVER = true;

public MyTable() {
...
this.addMouseListener(new MouseListener(){
...
public void mouseClicked(MouseEvent e) {
if (isRightClick(e)) {
setHoverEnabled(false);
showJPopupMenu();
}
}
});
}

protected void setHoverEnabled(final boolean hover) {
this.ENABLE_HOVER = hover;
}
}

关于java - 强制 JPopupMenu 禁用其所有者 JFrame 上的悬停效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5211930/

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