gpt4 book ai didi

Java - jComboBox1 上的 ActionEvent 来更新 jComboBox2 - 键盘/鼠标 Enter 键条件

转载 作者:行者123 更新时间:2023-12-01 21:21:29 25 4
gpt4 key购买 nike

我有两个 jComboBox,(1 和 2)

根据 1 中的选择更新 2。我面临的问题是 2 的更新是通过数据库查询完成的。因此,如果有人选择第一个组合框并开始输入以选择他们想要的内容,则会在每次按键/更新选择时触发数据库查询。这并不理想。

解决此问题的一种方法是使用 ActionEvent 来测试是否使用鼠标或键盘选择它。

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                           

if (evt.getModifiers() == 0) {
// Do nothing because keyboard is pressed
} else {
Object item = jComboBox1.getSelectedItem();
try{
// DATABASE CONNECTION HERE
// Load up jComboBox2
jComboBox2.removeAllItems();
while(rs.next())
{
jComboBox2.addItem(rs.getString(1));
}
//Close and catch exceptions etc.

是否可以在}else{上设置一个条件,以便能够说出

}else if(keyboardpressed(VK_ENTER) or mouseclick) {

原因是用户通常会在第一个组合框中键入进行选择,然后按 Enter 键进行选择。目前他们必须用鼠标来选择。

最佳答案

我认为您不应该允许从1st组合框进行查询,除非用户选择列出的项目或按ENTER有效文本输入。您的组合框是否有自动完成功能?甚至可能禁用第二组合框,直到从第一组合框做出有效选择

改用ItemStateChanged事件:

 private void jComboBox1ItemStateChanged(java.awt.event.ItemEvent evt) {                                            
// Prevent double selection from event.
if(evt.getStateChange() == ItemEvent.SELECTED) {
System.out.println(jComboBox1.getSelectedItem().toString());
// Or whatever you want to do with the selection.
}
}

关于Java - jComboBox1 上的 ActionEvent 来更新 jComboBox2 - 键盘/鼠标 Enter 键条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58848129/

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