![](/img/trans.png)
[英]How to make a JOptionPane "OK" itself from a child widget on double-click
[英]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.