2

メインのJframeにメニューリスナーを開くためのマウスの右クリックを実装しましたが、1つの問題を除いて正常に動作します。5回に1回(ギブまたはテイク)クリックしても応答しません。これはユーザーにとって非常に煩わしい場合があります。これが私のコードです:

contentPane = new JPanel();
contentPane.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) {

            if (e.getButton() == MouseEvent.BUTTON3) 
            {
                //Do Stuff
            }
        }
    });

手伝ってくれませんか

4

2 に答える 2

9
  1. のサブコンポーネントからクリックを取得することはありませんcontentPane

    あなたの問題はあなたがあなたのパネルに物事を追加したことだと思います。ユーザーがサブコンポーネントによって占められている領域をクリックすると、そのサブコンポーネントはクリックイベントを取得します。

    クイックフィックス:すべてのサブコンポーネントに同じマウスリスナーを追加することをお勧めします。

  2. あなたは「クリック」していません

    クリックとは、マウスを押してすばやく離すときです。注意しないと、「クリック」ではなく「押された、移動された、解放された」などのイベントが発生する可能性があります。

    クイックフィックス:mouseReleased代わりにイベントを使用してください。

于 2012-07-12T13:54:42.933 に答える