私の問題は少しトリッキーです。を使用していEditable JComboBox
ます。大文字と小文字を区別する項目が含まれる場合があります。たとえば、 と がある場合がItem1
ありitem1
ます。したがって、私の場合、これら 2 つの項目は異なるものとして扱われるべきです。
しかし問題は、これら 2 つの項目が同じものとして扱われることです。どの項目を選択しても、常に最初の項目 ( Item1
) が選択されます。Google で検索しましたが、解決策が見つかりませんでした。だから、私はここにいます。
コード:
//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());
}
}
ItemObject
BigInteger
は、1 つのフィールドがで、別のフィールドが である customClassですString
。
getItemTypeComboData
正常に機能しています。したがって、ここからのリストを取得すると想定できItemObject
、それはうまく変換されますVector<ItemObject>
jcbItemType.getSelectedIndex()
と に対して常に同じインデックスを返しItem1
ますitem1
。しかし、それは に対して異なるインデックスを返しますitem2
。
itemStateChanged
なるほど、イベントが使えればいいですね。でも私の場合は使えません。しかし、私の質問は、異なる名前の文字列に対しては正常MouseReleased
にFocusLost
機能しますが、大文字と小文字が異なる同じ文字列では機能しません。本当につまずきました。
質問をする別の方法:
大文字と小文字を区別するアイテムをイベントでチェックしますMouseReleased
か?FocusLost
この問題を解決するにはどうすればよいですか?
ありがとう。