作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我右键单击 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/
我是一名优秀的程序员,十分优秀!