如何让用户通过双击从JOptionPane中选择一个项目

时间:2013-11-27 18:43:26

标签: java swing joptionpane

在我的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);

如何让用户通过双击选择一个选项?

2 个答案:

答案 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(...);

获取你需要处理的窗口();