2011-12-22 18 views
0

JTextAreaを持つJFrameがあります。このTextAreaをクリックすると、JPopupMenuに「Clear」と「Save」の2つの項目が表示されます。ポップアップの場所を設定する

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

私の質問は:このポップアップは常に位置(0,0)に表示されますが、私はマウスがクリックされた場所内またはTextAreaのに比べて、ポップアップを表示したいと思います。

私はsetLocation(x,y)を試していますが、この方法は、常に固定位置に促し、それは私が求めているものではありません、そして、それは利用できない方法などsetLocationRelativeTo(JTextArea());

答えて

1

へのトリガーとしてのMouseListenerを使用していません代わりに、デフォルトではマウスの位置で右クリックでポップアップが表示されますそう

myTextArea.setComponentPopupMenu(myPopupMenu) 

のように、JComponentのcomponentPopupMenuプロパティを使用し、ポップアップが表示されます。キーボードでトリガーされた(LAF依存、勝利でF10)ポップアップ要求もカバーするという追加の利点があります。

あなた本当には手動でポップアップを表示する必要があるいくつかの理由で、あなたが探している方法は、

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

ある場合はどうもありがとうございました、それは完璧に動作します! –

関連する問題