我有一個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. Java,從ActionListener類中分離GUI
- 4. Java - 使用ActionListener調用JasperReport
- 5. 需要使用Java
- 6. 需要使用Java
- 7. 需要關於java的幫助GUI
- 8. 需要幫助,Eclipse中的Java GUI
- 9. 需要建議使用Java創建一個交互式GUI
- 10. Java GUI,需要暫停一個不凍結GUI的方法
- 11. 將ActionListener添加到Netbean GUI
- 12. Actionlistener java
- 13. 需要浮點精度,GUI gui使用int
- 14. 需要幫助修復GUI
- 15. 在主要方法上的Java ActionListener
- 16. RegisterDeviceNotification是否需要GUI
- 17. ActionListener中的Checkystyle問題:引用實例變量'x'需要'this'。在Java中
- 18. Java GUI(使用FXML):
- 19. ActionListener問題(Java)
- 20. ComboBox ActionListener Java
- 21. java actionlistener問題
- 22. Java JButton ActionListener
- 23. 使用ActionListener更新時鐘 - Java
- 24. Java GUI - MouseListener和ActionListener可能在同一個類中?
- 25. 將ActionListener插入到Java的GUI代碼中
- 26. 我需要用java
- 27. 我需要用java
- 28. setEditable使用ActionListener
- 29. Java JTextField actionListener不起作用
- 30. Java ActionListener的歷史
[如何寫一個列表選擇監聽器](http://docs.oracle.com/javase/tutorial/uiswing/events/listselectionlistener.html) – MadProgrammer 2015-01-20 21:06:03