我有一个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