JComboBox
单击时显示列表。我想显示一个 JPopupMenu
而不是列表。
在以下代码中,事件被触发,但弹出窗口未显示。为什么?
JComboBox box = new JComboBox();
box.addPopupMenuListener(new PopupMenuListener() {
@Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
popupMenu.show(box, 0, box.getHeight());
}
...
});
最佳答案
或者可以使用 mouseListener。由于 JDK 错误 https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4144505 必须将 mouseListener 添加到所有后代,如下所示:
MouseAdapter comboPopupAdapter = new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
popupMenu.show(box, 0, box.getHeight());
}
};
box.addMouseListener(comboPopupAdapter);
for (Component c : box.getComponents()) {
c.addMouseListener(comboPopupAdapter);
}
关于java - 如何在JComboBox中显示自定义PopupMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61249485/