首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用KeyRelease加载JComboBox

使用KeyRelease加载JComboBox
EN

Stack Overflow用户
提问于 2013-12-06 16:56:56
回答 1查看 186关注 0票数 0

这里我的要求是,当我在组合框中输入一些东西时,它应该搜索数据库并获得相关的data.when我正在输入它应该修复到确切的数据移除不想要的values..Here是我的code..nothing发生

代码语言:javascript
复制
private void ComboItemName() {
    bbb = false;
    txtComboItemName = (JTextField) ComboItemName.getEditor().getEditorComponent();
    txtComboItemName.addKeyListener(new KeyAdapter() {
        public void keyReleased(KeyEvent evt) {
            if (!(evt.getKeyCode() == KeyEvent.VK_DOWN || evt.getKeyCode() == KeyEvent.VK_UP || evt.getKeyCode() == KeyEvent.VK_LEFT || evt.getKeyCode() == KeyEvent.VK_RIGHT || evt.getKeyCode() == KeyEvent.VK_ENTER)) {
                try {
                    S3 = txtComboItemName.getText();
                    ResultSet rst = new JDBC.DB().getData("select * from item_reg where id like '%" + S3 + "'");
                    boolean b = rst.next();
                    boolean bb = false;
                    if (b) {
                        ComboItemName.removeAllItems();
                        bb = true;
                    }
                    while (b) {
                        if (rst.getString(1).startsWith(S3)) {
                            ComboItemName.addItem(rst.getString(1));
                        }
                        b = rst.next();
                    }
                    ComboItemName.setSelectedItem(S3);
                    txtComboItemName.setCaretPosition((ComboItemName.getSelectedItem() + "").length());
                    ComboItemName.showPopup();
                    int i = ComboItemName.getItemCount();

                    if (i > ComboItemName.getMaximumRowCount()) {
                        ComboItemName.setMaximumRowCount(15);
                    } else {
                        ComboItemName.setMaximumRowCount(i);
                    }
                    bbb = true;
                } catch (Exception ex) {
                    System.out.println(ex);
                }

            } else if (evt.getKeyCode() == KeyEvent.VK_ENTER && bbb == true) {

                boolean bIT = false;

                String Sr123 = (String) ComboItemName.getSelectedItem();
                try {
                    ResultSet Rst23 = new JDBC.DB().getData("select id from item_reg");
                    while (Rst23.next()) {
                        if (Sr123.equals(Rst23.getString(1))) {
                            bIT = true;
                            break;
                        } else {
                            bIT = false;
                        }
                    }
                    bbb = false;
                } catch (Exception ex) {
                    System.out.println(ex);
                }
            }
        }
    });
}
EN

回答 1

Stack Overflow用户

发布于 2013-12-06 17:06:04

ResultSet rst = new JDBC.DB().getData("select * from item_reg where id like '%" + S3 + "'");查询是否工作正常??

检查b的值。

代码语言:javascript
复制
boolean b = rst.next();

可能是您的查询不起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20419776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档