gpt4 book ai didi

java - 如何仅在按 Enter 键或更改 JcomboBox 中的所选项目后才触发事件

转载 作者:太空宇宙 更新时间:2023-11-04 13:11:41 24 4
gpt4 key购买 nike

我有一个可编辑的JComboBox。我只需要在以下情况下触发事件

  1. 用户在输入时按 Enter(这可以通过添加按键事件监听器来实现)或
  2. 用户从列表中选择项目

在下面的代码中,当用户在编辑器中键入时也会触发事件,如何避免用户键入时触发事件?

comboForward.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
new Thread() {
@Override
public void run() {
// code after the event.
}
}.start();
}
}
});

最佳答案

我觉得这个适合你。尝试一下。

JFrame frame = new JFrame("Welcome!!");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JComboBox cmb = new JComboBox();
cmb.setEditable(true);
cmb.getEditor().getEditorComponent().addKeyListener(new KeyAdapter() {

@Override
public void keyReleased(KeyEvent event) {
if (event.getKeyChar() == KeyEvent.VK_ENTER) {
if (((JTextComponent) ((JComboBox) ((Component) event
.getSource()).getParent()).getEditor()
.getEditorComponent()).getText().isEmpty())
System.out.println("please dont make me blank");
}
}
});
frame.add(cmb);

frame.setLocationRelativeTo(null);
frame.setSize(300, 50);
frame.setVisible(true);

引用这里:https://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html

关于java - 如何仅在按 Enter 键或更改 JcomboBox 中的所选项目后才触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33891471/

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