gpt4 book ai didi

java - 从打开的 JComboBox 打开 JPopupMenu

转载 作者:行者123 更新时间:2023-12-04 05:41:03 25 4
gpt4 key购买 nike

我想更改组合框的 OOTB 行为,在单击鼠标右键后将其卡住(检测单击了哪个按钮很容易,所以这不是重点)并打开 JPopupMenu 而不是选择该条目。

那么 - 如何禁用在给定条件下选择条目并使用自定义行为呢?

我尝试通过向所有组合框组件添加鼠标监听器开始,但没有成功 - 没有任何改变

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JComboBox;
import javax.swing.JFrame;

public class MainClass {

public static void main(final String args[]) {

final String labels[] = { "A", "B", "C", "D", "E" };
JFrame frame = new JFrame("Selecting JComboBox");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JComboBox comboBox = new JComboBox(labels);
frame.add(comboBox, BorderLayout.SOUTH);
frame.setSize(400, 200);
frame.setVisible(true);

for (Component c : comboBox.getComponents()) {
c.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
System.out.println("cli");
super.mouseClicked(e);
}
public void mousePressed(MouseEvent e) {
System.out.println("pre");
super.mousePressed(e);
}
});
}
}
}

最佳答案

  • 在 Swing 中无法同时显示两个轻量级弹出容器
  • 关于 JComboBox popup from JPopup 的示例
  • 有关于 set JPopup 的脏黑客重量级
  • 但我建议混合 AWT ContainerSwing JComponents并使用 AWT.PopupSwing.JComponent ( JMenuItemJButton )
  • 关于java - 从打开的 JComboBox 打开 JPopupMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11245982/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com