繁体   English   中英

JButton干扰JPanel上的鼠标侦听器

[英]JButton interfering with mouse listener on JPanel

我有一个带有鼠标侦听器的JPanel ,该侦听器检查mouseEnteredmouseExited ,这与鼠标聚焦到窗格上的按钮并触发mouseExited事件这一事实完全不同。

是否有一个使按钮不占据鼠标焦点的设置?

在这种情况下,我不需要专门修改重点。 我也不熟悉JPane,所以我认为您的意思是JPanel。


    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;

    public class FocusDemo {
       private JPanel  panel;
       private JButton button1;

       JFrame          frame = new JFrame("TempWindow");

       private FocusDemo() {
          panel = new JPanel();
          button1 = new JButton("Button");
          button1.addActionListener((ae) -> System.out.println("button pressed"));
          panel.add(button1);
          MyMouseListener ml = new MyMouseListener();
          panel.addMouseListener(ml);
          panel.addMouseMotionListener(ml);
          frame.add(panel);

       }

       public static void main(String[] args) {
          SwingUtilities.invokeLater(() -> new FocusDemo().start());
       }

       public void start() {
          frame.setLocationRelativeTo(null); // this line set the window in the
                                             // center of the screen
          frame.setPreferredSize(new Dimension(500, 500));
          frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
          frame.pack();
          frame.setLocationRelativeTo(null);
          frame.setVisible(true);

       }

       private class MyMouseListener extends MouseAdapter {
          public void mouseEntered(MouseEvent me) {
             System.out.println("mouse entered");
          }

          public void mouseExited(MouseEvent me) {
             System.out.println("mouse exited");
          }
       }

    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM