2016-05-05 12 views
0

私は3つのjcomboboxを持っています。それらのすべてには、尊重されたデータ、請求書ID、請求書日付および請求書金額があります。 3人すべてにアクションリスナーがあり、それらをクラスに送ります。クラスでは、どのコンボボックスが変更されたかを調べるためにスイッチケースを実行します。そこから選択したアイテムを取得し、他の2つをその選択したアイテムに設定します。例えば選択された同じ値のインデックス最初のアイテムが指定されていないインデックス

index = jComboBox1.getSelectedIndex(); 
jComboBox3.setSelectedIndex(index); 
jComboBox4.setSelectedIndex(index); 

私が抱えている問題は、量が同じであれば、その量の最初のインデックスを選択することです。どうすればこの問題を解決できますか?

+0

金額とは何ですか? – matt

+0

@matt amountは請求書の金額であり、aは2倍です。 – Captain

+0

もう少しコードが必要になります。 '...そこから、選択したアイテムを取得し、他の2つをその選択したアイテムに設定します.'これはあなたが投稿したコードとは異なります。あなたはequalsをオーバーライドしましたか?なぜ金額がどういう意味ですか?あなたのコンボボックスは何ですか?例えば。 'JComboBox ' – matt

答えて

0

setSelectedIndexを呼び出しても、JComboBoxは内部でsetSelectedItemを使用しているという問題があります。最初の項目はequalsです。

金額欄にオブジェクトラッパーを使用することができます(これは倍数であると思います)。

+0

私はJComboBoxにデータがロードされたときにあなたのソリューションが動作していないように見えますが、なぜそれが起こったのか理解してくれてありがとうと感謝します。オブジェクト型に変換するので、オブジェクトラッパーが何であっても、オブジェクトに変換され続けますか? – Captain

+0

@mattはjdk6でチェックされています。モデルから項目を取得し、setselecteditemを呼び出します。 – KDM

+0

@Captain量を保持するクラスを作成し、toStringをオーバーライドします。 – KDM

0

これは私のKDMの提案の解釈です。オブジェクトを追加するとき

JComboBox<Object> idBox = new JComboBox<>(); 

は次に:

idBox.add(new Object(){ public String toString(){ return invoice.id + "";}}); 

私はよりよい解決策は、あなたの請求書は各ボックスに保存されているとちょうど異なっレンダリングされるように、カスタムレンダラを使用してJComboBoxのを持っていることだと思います、適切な文字列を返します。

関連する問題