Swing 设置弹出位置

Swing 设置弹出位置,swing,netbeans,Swing,Netbeans,我有一个JFrame和一个JTextArea:点击这个TextArea,会出现一个带有两个项目“Clear”和“Save”的JPOppMenu 我的问题是:这个弹出窗口总是出现在位置(0,0),但我想显示鼠标点击的弹出窗口,在文本区域内或相对于文本区域 我尝试了setLocation(x,y),但是这种方法总是在固定的位置提示,这不是我想要的,并且它不适用于setLocationRelativeTo(JTextArea())等方法不要使用鼠标侦听器作为触发器来显示弹出窗口,而是使用JCompon

我有一个JFrame和一个JTextArea:点击这个TextArea,会出现一个带有两个项目“Clear”和“Save”的JPOppMenu

我的问题是:这个弹出窗口总是出现在位置(0,0),但我想显示鼠标点击的弹出窗口,在文本区域内或相对于文本区域


我尝试了
setLocation(x,y)
,但是这种方法总是在固定的位置提示,这不是我想要的,并且它不适用于
setLocationRelativeTo(JTextArea())等方法

不要使用鼠标侦听器作为触发器来显示弹出窗口,而是使用JComponent componentPopupMenu属性,如

 myTextArea.setComponentPopupMenu(myPopupMenu)
默认情况下,这样做将在鼠标右键单击时显示弹出窗口。它还具有覆盖键盘触发(依赖LAF,F10依赖win)弹出请求的额外好处

如果出于某种原因,您确实需要手动显示弹出窗口,那么您要寻找的方法是

myPopup.show(myTextArea, x, y)
myPopup.show(myTextArea, x, y)