gpt4 book ai didi

java - 我如何在java中处理Jcombobox的按键事件

转载 作者:行者123 更新时间:2023-12-01 18:57:17 24 4
gpt4 key购买 nike

我想将项目添加到 JCombobox ,该项目是我在 JCombobox 中输入的内容,即要添加的项目。此 jCombox 框是可编辑的。

我该怎么做。

好吧,我尝试为此 JCombo 框添加 KeyPress 事件,但它没有响应

 private void jbcBOXKeyTyped(java.awt.event.KeyEvent evt) {

if (evt.getKeyCode() == 13) {
System.out.println("Keypress");
jbcBOX.addItem(jbcBOX.getSelectedItem().toString());
}
}

最佳答案

做了一个简短的例子希望有帮助。

基本上只是将 ActionListener 添加到 JComboBox 中,每当选择或添加项目时就会调用 ActionListener。在 ActionListener 中,我们只需检查是否存在与当前所选项目匹配的项目,如果没有,则将该项目添加到 JComboBox 如果找到匹配项,则不执行任何操作:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class EditableJComboBox {

public EditableJComboBox() {
initComponents();
}

private void initComponents() {
JFrame frame = new JFrame("Editable JComboBox");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

String labels[] = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"};
final JComboBox comboBox = new JComboBox(labels);
comboBox.setEditable(true);

comboBox.addActionListener(new ActionListener() {
private boolean found = false;

@Override
public void actionPerformed(ActionEvent actionEvent) {
String s = (String) comboBox.getSelectedItem();
for (int i = 0; i < comboBox.getItemCount(); i++) {
if (comboBox.getItemAt(i).toString().equals(s)) {
found = true;
break;
}
}
if (!found) {
System.out.println("Added: " + s);
comboBox.addItem(s);
}
found = false;
}
});

frame.add(comboBox);

frame.pack();
frame.setVisible(true);
}

public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new EditableJComboBox();
}
});
}
}

关于java - 我如何在java中处理Jcombobox的按键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13517980/

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