我有一個2個JLists的GUI。我一次只需要選擇兩個列表中的一個選擇,例如,如果用戶選擇了1列表中的某些內容,則選擇另一列表中的內容將導致第一列表中的內容被取消選擇。我的想法是簡單地在列表上使用actionlistener,所以當選擇一個列表中的任何內容時,另一個列表將被取消選擇,但顯然這不起作用。我已經閱讀了這個主題,似乎普遍的共識是使用mouseListener來做到這一點。這是唯一的方法嗎?我並不想爲我的程序添加大量的額外代碼,因爲我已經設置了actionlistener代碼。我不在乎每個列表中選擇什麼,我甚至不需要知道索引,我只需要知道什麼時候選擇了什麼。提前致謝。Java GUI,需要使用actionlistener?
回答
首先,你有沒有考慮過所有的方法來防止你的情況在兩個列表中的元素被選中?像選擇時禁用另一個列表(Component.setEnabled(false))
其次,您可以爲您的目的使用ItemListener。要知道,你可能只需要來處理該事件,如果有getStateChange()==ItemEvent.SELECTED
使用ListSelectionListener
這樣的:
list.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
// deactivate other list
}
});
你有工作@Tiggerbiggo? – 2015-01-20 21:10:53
對不起,我一直在做其他事情,對於遲到的回覆感到抱歉。我現在只是嘗試了一下,這段代碼看起來不錯,我相信它會起作用,一旦我嘗試過後會再次發佈 – Tiggerbiggo 2015-01-21 10:24:04
雖然,看着那個,parens看起來有點不合適,爲什麼你有一個方法括號?不應該是: – Tiggerbiggo 2015-01-21 10:25:59
試試這個演示了自己的理解:
import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
import java.awt.event.*;
public class Demo extends JFrame {
String[] options = {"1. Something", "2. Something", "3. Something", "4. Something"};
JList<String> list;
Demo() {
setSize(640, 480);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
list = new JList<String>(options); // set options in list
add(list); // add list to current frame
pack();
// bind event listener to list
list.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
System.out.println("Something happened");
}
});
}
public static void main(String[] args) {
new Demo(); // initialize demo
}
}
這是怎麼回事?我運行它,它清楚地表明瞭這個概念。 – 2015-01-21 14:45:10
- 1. 需要ActionListener幫助!
- 2. 需要ActionListener代碼說明
- 3. ActionListener,執行Gui
- 4. GUI Panel ActionListener
- 5. Java,從ActionListener類中分離GUI
- 6. Java GUI,根據actionListener更改面板
- 7. gui help ... with a actionListener
- 8. Java - 使用ActionListener調用JasperReport
- 9. 需要使用Java
- 10. 需要使用Java
- 11. 需要關於java的幫助GUI
- 12. 需要幫助,Eclipse中的Java GUI
- 13. 需要建議使用Java創建一個交互式GUI
- 14. 安裝需要GUI
- 15. Java GUI,需要暫停一個不凍結GUI的方法
- 16. 在RTP GUI中實現Actionlistener
- 17. 將ActionListener添加到Netbean GUI
- 18. 需要浮點精度,GUI gui使用int
- 19. 需要關於使用JButton ActionListener的建議
- 20. Actionlistener java
- 21. Java ActionListener
- 22. 需要使用JAVA只
- 23. 需要幫助修復GUI
- 24. GUI中的ActionListener。功能不起作用
- 25. gui和actionlistener的最佳做法
- 26. 在主要方法上的Java ActionListener
- 27. RegisterDeviceNotification是否需要GUI
- 28. 當使用Java GUI
- 29. Java GUI(使用FXML):
- 30. Java:使用ActionListener,我需要從文本字段獲取用戶輸入並使用它,我遇到了問題
[如何寫一個列表選擇監聽器](http://docs.oracle.com/javase/tutorial/uiswing/events/listselectionlistener.html) – MadProgrammer 2015-01-20 21:06:03