单击时,JComboBox会显示一个列表。我想要显示一个JPopupMenu,而不是列表。在下面的代码中,事件被触发,但是弹出窗口没有出现。为什么?
JComboBox box = new JComboBox();
box.addPopupMenuListener(new PopupMenuListener() {
@Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
popupMenu.show(box, 0, box.getHeight());
}
...
});发布于 2020-04-17 15:54:19
或者,可以使用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);
}https://stackoverflow.com/questions/61249485
复制相似问题