Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.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_Case Sensitive - Fatal编程技术网

Java 区分大小写的jcombobox

Java 区分大小写的jcombobox,java,swing,jcombobox,case-sensitive,Java,Swing,Jcombobox,Case Sensitive,我的问题有点棘手。我使用的是一个可编辑JComboBox。它可能包含区分大小写的项目。例如,它可能有Item1和Item1。因此,在我的案例中,这两个项目应该被视为不同的 但问题是,这两个项目被视为相同的。无论我选择了哪些项目,它总是选择第一个(Item1)。我在谷歌上搜索过,但没有找到任何解决方案。这就是为什么,我在这里 代码: //loading of Items jdcbmItemType = new javax.swing.DefaultComboBoxModel(ItemTypeHan

我的问题有点棘手。我使用的是一个
可编辑JComboBox
。它可能包含区分大小写的项目。例如,它可能有
Item1
Item1
。因此,在我的案例中,这两个项目应该被视为不同的

但问题是,这两个项目被视为相同的。无论我选择了哪些项目,它总是选择第一个(
Item1
)。我在谷歌上搜索过,但没有找到任何解决方案。这就是为什么,我在这里

代码:

//loading of Items
jdcbmItemType = new javax.swing.DefaultComboBoxModel(ItemTypeHandler.getItemTypeComboData(MainFrame.companyId));

private void jcbItemTypeMouseReleased(MouseEvent evt)
{
    if (jcbItemType.getSelectedIndex() != -1)
    {
        loadItemTypeDetails(((ItemObject) jcbItemType.getSelectedItem()).getId());
    }
    else
    {
        resetFields();
    }
}

public static Vector<ItemObject> getItemTypeComboDataV(BigInteger companyId, BigInteger categoryId, boolean addFirstElement, TriState deleted) throws ExceptionWrapper, EJBException
{
    try
    {            
        return (Vector<ItemObject>)lookupItemTypeFacade().getItemTypeComboData(companyId, categoryId, addFirstElement, deleted);
    } catch (ExceptionWrapper exceptionWrapper)
    {
        throw exceptionWrapper;
    } catch (EJBException ejbEx)
    {
        throw ejbEx;
    } catch (Exception ex)
    {
        throw new ExceptionWrapper(ex.getMessage());
    }
}
//加载项目
jdcbmItemType=newjavax.swing.DefaultComboxModel(ItemTypeHandler.getItemTypeComboData(MainFrame.companyId));
私有无效jcbItemTypeMouseReleased(MouseEvent evt)
{
如果(jcbItemType.getSelectedIndex()!=-1)
{
loadItemTypeDetails(((ItemObject)jcbItemType.getSelectedItem()).getId());
}
其他的
{
重置字段();
}
}
公共静态向量getItemTypeComboDataV(BigInteger companyId、BigInteger categoryId、boolean addFirstElement、TriState deleted)抛出异常包装器、EJBException
{
尝试
{            
return(Vector)lookupItemTypeFacade().getItemTypeComboData(companyId、categoryId、addFirstElement、deleted);
}捕获(例外包装例外包装)
{
抛出异常包装器;
}捕获(EJBException ejbEx)
{
抛出ejbEx;
}捕获(例外情况除外)
{
抛出新的ExceptionWrapper(例如getMessage());
}
}
ItemObject
是一个自定义类,其中一个字段是
biginger
,另一个字段是
String

getItemTypeComboData
功能正常。因此,您可以假设从这里获得
ItemObject
的列表,它将很好地将其转换为
Vector

jcbItemType.getSelectedIndex()
始终为
Item1
Item1
返回相同的索引。但是它为
项2
返回不同的索引

我知道,如果我能使用
itemStateChanged
event会更好。但就我而言,我不能用它。但我的问题是,
mousererelease
FocusLost
适用于不同的名称字符串,但不适用于不同大小写的相同字符串。我真的被绊倒了

另一种提问方式:

//loading of Items
jdcbmItemType = new javax.swing.DefaultComboBoxModel(ItemTypeHandler.getItemTypeComboData(MainFrame.companyId));

private void jcbItemTypeMouseReleased(MouseEvent evt)
{
    if (jcbItemType.getSelectedIndex() != -1)
    {
        loadItemTypeDetails(((ItemObject) jcbItemType.getSelectedItem()).getId());
    }
    else
    {
        resetFields();
    }
}

public static Vector<ItemObject> getItemTypeComboDataV(BigInteger companyId, BigInteger categoryId, boolean addFirstElement, TriState deleted) throws ExceptionWrapper, EJBException
{
    try
    {            
        return (Vector<ItemObject>)lookupItemTypeFacade().getItemTypeComboData(companyId, categoryId, addFirstElement, deleted);
    } catch (ExceptionWrapper exceptionWrapper)
    {
        throw exceptionWrapper;
    } catch (EJBException ejbEx)
    {
        throw ejbEx;
    } catch (Exception ex)
    {
        throw new ExceptionWrapper(ex.getMessage());
    }
}
是否对区分大小写的项目进行
mousererelease
FocusLost
事件检查

如何解决这个问题


谢谢。

我想你是这样做的:-

String[] items = {"item1", "item2"};
JComboBox cb = new JComboBox(items);
cb.setEditable(true);
现在,您必须访问JCombobox元素,这些元素以数组形式插入其中,如下所示:- MyItemListener actionListener=新建MyItemListener(); cb.addItemListener(actionListener)


添加itemListener后,您可以使用单个JCombobox项执行不同的任务

我认为您是这样做的:-

String[] items = {"item1", "item2"};
JComboBox cb = new JComboBox(items);
cb.setEditable(true);
现在,您必须访问JCombobox元素,这些元素以数组形式插入其中,如下所示:- MyItemListener actionListener=新建MyItemListener(); cb.addItemListener(actionListener)

添加itemListener后,您可以使用单独的JCombobox项执行不同的任务,这是我的,很好用。如果这不是您想要的,请发布您的帮助


这是我的,这个很好用,如果这不是你要找的,那就发布你的帖子,寻求更好的帮助



试试这个,它很好用

使用ActionListener()捕获单击。。。然后使用getSelectedItem()捕获在JComboBox上单击的项目

试试这个

检查控制台中的输出

myComboBox.addItemListener(new ItemListener() {

        @Override
        public void itemStateChanged(ItemEvent ie) {
            String str = (String) myComboBox.getSelectedItem();
           System.out.println(str);
        }

试试这个,它很好用

使用ActionListener()捕获单击。。。然后使用getSelectedItem()捕获在JComboBox上单击的项目

试试这个

检查控制台中的输出

myComboBox.addItemListener(new ItemListener() {

        @Override
        public void itemStateChanged(ItemEvent ie) {
            String str = (String) myComboBox.getSelectedItem();
           System.out.println(str);
        }

没有解决办法吗?专家们,请给出建议。请发布您的完整代码。这比语言更有意义。另外,在
JComboBox
中添加新项时是否看到此警告:
警告:如果添加重复的字符串对象,可能会出现焦点和键盘导航问题。解决方法是添加新对象而不是字符串对象,并确保定义了toString()方法。
您尚未显示
ItemTypeHandler.getItemTypeComboData(MainFrame.companyId)的代码。
。请阅读我发布的上述警告消息。@Subs:我检查了您的警告消息,
toString()
已定义。很抱歉,您的代码不完整。我在你的代码中没有看到
ItemObject
toString()
方法,我也不知道
jcbitemtypemousererelease(MouseEvent evt)
是否是
actionevent
事件。它没有任何解决方案吗?专家们,请给出建议。请发布您的完整代码。这比语言更有意义。另外,在
JComboBox
中添加新项时是否看到此警告:
警告:如果添加重复的字符串对象,可能会出现焦点和键盘导航问题。解决方法是添加新对象而不是字符串对象,并确保定义了toString()方法。
您尚未显示
ItemTypeHandler.getItemTypeComboData(MainFrame.companyId)的代码。
。请阅读我发布的上述警告消息。@Subs:我检查了您的警告消息,
toString()
已定义。很抱歉,您的代码不完整。我在你的代码中没有看到
ItemObject
toString()
方法,也不知道
jBitemTypeMouseRelease(MouseEvent evt)
是否是
actionevent
。请再次阅读我的问题。你说的我都做了。但我的问题在于区分大小写。请再次阅读我的问题。你说的我都做了。但我的问题在于区分大小写。有一件事我忘了提。我正在使用
mousererelease
事件获取所选项目。使用
Mou难道不可能吗