WindowsLookAndFeel 中的不同行为

Different behavior in WindowsLookAndFeel

我想显示一个弹出菜单,在使用 Metal L&F 时它会执行这些操作。

是的,我需要它。但是当使用 WindowsLookAndFeel 时,它与那些不一样。 当两次按下它只是隐藏菜单而不是打印“按下”。为什么它在两个 L&F 之间有不同的行为?

 import javax.swing.*;
 import java.awt.event.*;
 
 public class Popup {
    public static void main(String[] args) {
        JFrame f = new JFrame();
        f.setSize(300, 300);
        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        JPopupMenu menu = new JPopupMenu();
        menu.add("item");
        f.addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                System.out.println("pressed");
            }
        });
        f.addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                menu.show(f, e.getX(), e.getY());
            }
        });
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }
 }
boolean consumeEvent = UIManager.getBoolean("PopupMenu.consumeEventOnClose");
// Consume the event so that normal processing stops.
if(consumeEvent && !(src instanceof MenuElement)) {
    me.consume();
}

我发现问题了,因为这个属性不一样 所以结束它