我有JList
一个DefaultListModel
。
如何在JList
双击事件中做出反应?
Answers:
String[] items = {"A", "B", "C", "D"};
JList list = new JList(items);
list.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
JList list = (JList)evt.getSource();
if (evt.getClickCount() == 2) {
// Double-click detected
int index = list.locationToIndex(evt.getPoint());
} else if (evt.getClickCount() == 3) {
// Triple-click detected
int index = list.locationToIndex(evt.getPoint());
}
}
});
if (evt.getButton() == MouseEvent.BUTTON1)
我知道您有一个简单的解决方案,但您可能想查看List Action,以获得更通用的解决方案,该解决方案将使您既可以使用鼠标又可以使用键盘。正确的GUI设计应允许使用任何一种方法。
(基于已接受的回复Mohamed Saligh)
如果您使用的是NetBeans
选择JList>事件窗口> mouseClicked
private void jListNicknamesMouseClicked(java.awt.event.MouseEvent evt) {
JList list = (JList)evt.getSource();
if (evt.getClickCount() == 2) {
int index = list.locationToIndex(evt.getPoint());
System.out.println("index: "+index);
}
}