gpt4 book ai didi

java - 悬停时激活 JMenuBar

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:16:06 33 4
gpt4 key购买 nike

JMenuBar 没有开始显示 JMenuItem选择或显示 JMenu弹出窗口,直到它被第一次点击。单击 JMenuBar 中的某处后, 所有这些项目都会响应鼠标悬停。

我想绕过所需的初始点击,让它在鼠标悬停时自动激活。有办法做到这一点吗?

最佳答案

方法是在JMenu上添加一个MouseListener,监听mouseEntered事件。在事件处理程序中,您只需使用 doClick 单击它。例如,

jMenuFile.addMouseListener(new MouseListener(){
public void mouseEntered(MouseEvent e) {
jMenuFile.doClick();
}
...
});

一旦输入以编程方式单击鼠标,它会自动打开弹出菜单。要激活整个 JMenuBar,您必须在每个 JMenu 上添加一个监听器。为此,最好单独创建一个监听器对象。

我在栏上有两个菜单项,所以我做了:

MouseListener ml = new MouseListener(){
public void mouseClicked(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {
((JMenu)e.getSource()).doClick();
}
};
jMenuFile.addMouseListener(ml);
jMenuHelp.addMouseListener(ml);

如果栏上的菜单项太多,你可以迭代它:

for (Component c: jMenuBar1.getComponents()) {
if (c instanceof JMenu){
c.addMouseListener(ml);
}
}

关于java - 悬停时激活 JMenuBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12125402/

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