2017-01-24 26 views
0

我有一個表單類型應用程序,其中JComboBox用於表示客戶端的標題(Mr/Mrs/Ms/etc。) 。當用戶點擊它打開下拉列表,然後選擇一個新值時,我想在組合框更改值時觸發事件。我還在左側面板中顯示客戶的姓名。單擊客戶端的名稱將會將JComboBox更改爲爲該客戶端存儲的值,但當組合框的值以這種方式更改時,我不想觸發該事件。JComboBox事件,當通過從下拉列表中選擇一個新值來更改值時

兩者的ActionListener和ItemChangeListener將觸發這兩種情況下

事件

從的MouseListener的的mousePressed方法將觸發點擊了JComboBox中時的情況下,但不是毗鄰的JComboBox箭頭被點擊enter image description here時。另外,無論組合框中的選定項目是否更改,MousePressed事件都會觸發。

回答

3

在客戶端名稱更改時觸發事件之前,請先刪除ItemChangeListener並將其添加回來。這樣它會「跳過」通知

+0

但是,當我將它添加回來時,我想過使用mouslistener將其添加回來,但單擊組合框箭頭將不會觸發它 – user217339

+0

您將其添加回來使呼叫設置JComboBox – Jayfray

+0

selectedItem我看到,這工作完美,謝謝! – user217339

相關問題