我需要一个带有附加下拉样式菜单的JButton.所以我拿了一个JPopupMenu并以你在下面的代码中看到的方式将它附加到JButton.它需要做的是:
这4周工作上的事情,但我使用,因为布尔标志,如果用户点击了其他位置或选择一个项目,我必须在按钮上点击两次才能再次之前.这就是为什么我尝试添加一个FocusListener(绝对没有响应)来修复它并在这些情况下将标志设置为false.
编辑:最后一次尝试回答帖子......
以下是监听器:(它在一个扩展JButton的类中,所以第二个监听器在JButton上.)
// Show popup on left click.
menu.addFocusListener(new FocusListener() {
@Override
public void focusLost(FocusEvent e) {
System.out.println("LOST FOCUS");
isShowingPopup = false;
}
@Override
public void focusGained(FocusEvent e) {
System.out.println("GAINED FOCUS");
}
});
addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("isShowingPopup: " + isShowingPopup);
if (isShowingPopup) {
isShowingPopup = false;
} else {
Component c = (Component) e.getSource();
menu.show(c, -1, c.getHeight());
isShowingPopup = true;
}
}
});
Run Code Online (Sandbox Code Playgroud)
我现在已经用这个太久了.如果有人能给我一个关于这个问题的线索,那就太好了!
谢谢!
码:
public class …Run Code Online (Sandbox Code Playgroud)