2016-04-13 49 views
-1

私はjComboBoxを持っていますが、それ以上のアイテムで同じ値を持つことがあります。この場合、それらのいずれかを選択すると、選択は常にリストの最初の項目に移動します。クリック直後。 誰か経験したことがありますか?そのための解決策はありますか?その選択は変わりません。私が選択した場合jComboBoxは、選択したアイテムを選択したときに選択項目を最初に選択します

http://i.stack.imgur.com/IjlYM.png

は再びチェック:

http://i.stack.imgur.com/c1lcQ.png

答えて

0

を、私が項目のより多くのために同じ値を持つことが起こります。

コンボボックスにカスタムオブジェクトを追加しているようです。

同じ値を表示しても別の項目である場合は、オブジェクトにequals()メソッドを実装して、適切なオブジェクトを選択する必要があります。

さらに詳しい情報が必要な場合は、あなたが何をしているのかを推測するのに十分な情報がないため、問題を示す適切なSSCCEを投稿してください。

+0

ここでは同じコードですhttp://stackoverflow.com/questions/36555069/entities-with-same-name-inserting-always-for-the-first-id、私は思っていたので別の質問をしましたそれは私のロジックのいくつかの問題だった、今私はより多くのコンポーネントと関連していると思う 'jcombobox' – Rodrigo

+0

これはSSCCEではない。 SSCCEは、コピー、コンパイル、テストできる単一のクラスに完全に含まれる単純化されたコードです。つまり、単純なStudentオブジェクト(2つのパラメータを使用)があります。次に、2つの生徒を作成し、コンボボックスに追加します。次に、コンボボックスをフレームに追加します。したがって、Studentクラスは20行のコードであり、コードは20行分のコードを作成することになります。その後、SSCCEを投稿すれば、おそらく助けてくれるかもしれません。その投稿の他のすべてのものは、質問とは無関係です。 – camickr

0

JComboBoxは、リスト内で選択されているものと、表示フィールドに表示されているものを常に同期しようとします。これを行うために、エディタフィールドの一致を順番にリストから検索します。したがって、リスト内に同一の項目がある場合、常に最初の項目が検索されます。したがって、リスト内の同じ文字列の可能性がある場合は、Stringオブジェクトを使用することはできません。 @camickrが言ったことをする必要があり、toString()メソッドが同じものを返す2つのオブジェクトを区別するカスタムオブジェクトを使用する必要があります(デフォルトのモデルとエディタを使用すると仮定します)。

関連する問題