Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何限制用户在JCombobox中输入列表以外的值?_Java_Swing_Jcombobox - Fatal编程技术网

Java 如何限制用户在JCombobox中输入列表以外的值?

Java 如何限制用户在JCombobox中输入列表以外的值?,java,swing,jcombobox,Java,Swing,Jcombobox,我想限制用户在JCombobox中输入列表以外的值,同时我想在JCombobox中执行自动完成。所以我使用的是SwingX库。有时,它会让用户重新输入列表以外的值,但有时它允许用户输入 有人能给我建议或者给我其他的解决方案吗 代码如下: Vector temp = new Vector(); temp.add(""); String sql = "select mat_uom from mat_type where mat_type = ?"; p

我想限制用户在JCombobox中输入列表以外的值,同时我想在JCombobox中执行自动完成。所以我使用的是SwingX库。有时,它会让用户重新输入列表以外的值,但有时它允许用户输入

有人能给我建议或者给我其他的解决方案吗

代码如下:

Vector temp = new Vector();
        temp.add("");
        String sql = "select mat_uom from mat_type where mat_type = ?";
        pst = conn.prepareStatement(sql);
        pst.setString(1, matType.getSelectedItem().toString());
        rs = pst.executeQuery();
        while(rs.next()){
            temp.add(rs.getString(1));
        }
        DefaultComboBoxModel model = new DefaultComboBoxModel(temp);
        matUom.setModel(model);
        AutoCompleteDecorator.decorate(matUom);

提前感谢。

是的,解决方案已经完成

如果您想在自己的项目中使用自动完成,只需下载这个。然后在GUI代码中使用以下代码段

AutoCompletion.enable(yourComboBox);

我尝试过你的建议,但我得到了空指针异常,第一次,它允许我输入列表值以外的值。不,它不会引发任何异常。只需单独运行该类,看看它是如何工作的。你能发布你的代码吗。你可能初始化错误。这里我粘贴了我的代码,你能给我建议吗,如果在我的代码中需要。矢量温度=新矢量;rs=pst.executeQuery;而rs.next{temp.addrs.getStringf_nm;}DefaultComboxModel=new DefaultComboxModelTemp;factory.setModelmodel//AutoCompleteDecorator.decoratefactory;AutoCompletion.enablefactory;在这里,我刚刚创建了一个项目,粘贴了您建议的自动完成代码,并将jar文件附加到我的项目中。