![]() |
1
2
这段代码应该按照您希望的方式工作(希望您遵循匿名类的用法:
要注意的关键是当我们设置弹出菜单时:
以及当弹出菜单可见时,如何请求文本字段的焦点,这是通过请求焦点的文本字段完成的,但不是在窗口中的焦点,因为它不存在于窗口中,只存在于菜单中:
最后,文本字段如何取消弹出菜单:
|
![]() |
2
1
您应该能够通过重写getcomponentpopupmenu来返回jpopupmenu来完成此操作。这应该和你想要的完全一样。它将允许焦点等。 编辑:这不是严格必要的,尽管它允许更好的继承。
哦,如果您希望它在任何鼠标单击时显示,请添加一个鼠标侦听器,然后调用弹出菜单上的显示:
这将在任何鼠标单击时显示。 或者,另一个选项是,如果您有鼠标监听器(调用processMouseEvent),并且只想在右键单击时调用:
鼠标侦听器如下所示:
|
![]() |
3
1
我想指出的是,通过使用建议的方法,我发现
所以本质上,我只需要加上
|
![]() |
4
0
当你显示一个弹出窗口时,它应该有焦点(它可能会抓住它),任何其他东西都没有什么意义。 所以可能发生的是: 菜单显示并获取焦点。 使用下一个命令,您将焦点遍历到文本字段。因为弹出窗口没有焦点,没有焦点的弹出窗口是无用的,所以它再次隐藏。 |
|
Jonathan Rada · 使用jbutton设置值,然后确认值? 7 年前 |
![]() |
Molay · 不会为每个发布()调用SwingWorker进程() 7 年前 |
![]() |
Lakshya Munjal · Java中的Onclick事件 7 年前 |
![]() |
Denny Williams · 如何获得鼠标移动之间的时间? 7 年前 |
![]() |
alexanoid · 旋转BuffereImage并移除黑色边界 7 年前 |
![]() |
Vincent · 显示内容错误charles(awt?) 7 年前 |