JButton 干扰 JPanel 上的鼠标侦听器

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

是否有设置使按钮不占用鼠标焦点?


互换的青春
浏览 83回答 1
1回答

白衣染霜花

在这种情况下,我从来不需要专门修改焦点。我也不熟悉 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");          }       }    }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java