簡體   English   中英

如何讓用戶通過雙擊從JOptionPane中選擇一個項目

[英]How to let the user select an item from JOptionPane with a double-click

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

如何讓用戶通過雙擊選擇一個選項?

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()函數對其進行處理。

有關允許您使用鼠標或鍵盤從列表中選擇項目的解決方案,請參閱列表操作

在您創建的操作中,您可以使用:

Window window = SwingUtilities.windowForComponent(...);

獲取您需要dispose()的窗口;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM