设置弹出位置



我有一个JFrame与JTextArea:通过点击这个TextArea一个JPopupMenu出现了两个项目"Clear"one_answers"Save"

private void jTextArea1MousePressed(java.awt.event.MouseEvent evt) {
   jPopupMenu1.setVisible(true);
}

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

我尝试过setLocation(x,y),但这种方法总是在固定位置提示,这不是我要寻找的,并且它不可用的方法如setLocationRelativeTo(JTextArea());

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

 myTextArea.setComponentPopupMenu(myPopupMenu)

默认情况下,这样做将在鼠标右键位置显示弹出框。它还有一个额外的好处,可以覆盖键盘触发的弹出请求(依赖于LAF, F10在win上)。

如果出于某种原因你真的需要手动显示弹出窗口,你要寻找的方法是

myPopup.show(myTextArea, x, y)

相关内容

  • 没有找到相关文章

最新更新