在我的Java Swing应用程序中,我使用带有JList的JOptionPane向用户显示一个选项列表,使用以下代码:
List<Object> options = getOptions();
JList list = new JList(options.toArray());
JScrollPane scrollpane = new JScrollPane();
JPanel panel = new JPanel();
panel.add(scrollpane);
scrollpane.getViewport().add(list);
JOptionPane.showMessageDialog(null, scrollpane,
"Please select an object", JOptionPane.PLAIN_MESSAGE);
如何让用户通过双击选择一个选项?
答案 0 :(得分:3)
JList
不提供双击或三击(或N)鼠标点击的任何特殊处理,但如果您希望对这些事件采取措施,则可以轻松添加MouseListener
。使用locationToIndex
方法确定单击了哪个单元格。例如:
list.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
int index = list.locationToIndex(e.getPoint());
System.out.println("Double clicked on Item " + index);
}
}
});
我只需要知道如何在用户之后关闭对话框 双击项目
在此鼠标事件中,您可以使用SwingUtilities.windowForComponent(list)
获取窗口并使用window.dispose()
函数处理它。
答案 1 :(得分:3)
请参阅List Action以获得一个解决方案,该解决方案允许您使用鼠标或键盘从列表中选择项目。
在您创建的操作中,您可以使用:
Window window = SwingUtilities.windowForComponent(...);
获取你需要处理的窗口();