1

JTreeにポップアップメニューを表示する必要があり、次のようにマウスリスナーを追加しました。

  tree.addMouseListener(new MouseAdapter(){
     public void mouseClicked(MouseEvent me){
        if (SwingUtilities.isRightMouseButton(me)){
           //.. some code to show popup menu
        }
     }
  });

しかし、このイベントがスキップされることがmouseClicked()あります。クリックしましたが、呼び出されません。同じことが起こりJTabbedPaneます:私はいくつかのタブを右クリックし、時々mouseClicked()呼び出されませんが、タブは実際に切り替えられます。

UPD:これはクリックの約10%で発生します。あまりにも頻繁にそれを無視します。

ちなみに、これを追加することもできますChangeListenerJTabpedPane、このイベントがスキップされることはありませんが、マウスも処理する必要があり、ここで何が間違っているのかまったくわかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

3

問題は、クリックの10%で実際にクリックしているのではなく、ドラッグを開始および終了していることだと思います。そのため、mouseClickedイベントは機能しません。

mouseClickedイベントの代わりに、mousePressedまたはmouseReleased MouseAdapterのイベント(必要な動作によって異なります)を聞いてみてください。

于 2012-04-20T16:45:25.957 に答える