[英]Is there a way to add a double click action listener onto a JScrollPane?
鼠標事件被傳遞給您單擊的組件。
如果該組件沒有鼠標偵聽器,則將事件向上傳遞到父組件,直到找到具有鼠標偵聽器的組件。
默認情況下,Swing 將 MouseListener 添加到 JList(例如處理單擊列表中的項目),因此該事件永遠不會傳遞到滾動窗格。
此外,當單擊表格而不是單元格本身時會發生這種情況。
不知道這是什么意思。 什么是“表格”,什么是“單元格”? 聽起來您正在將 JTable 添加到滾動窗格,而不是 JList。
在任何情況下,如果您想在 JList(已添加到 scrollPane 的視口)上偵聽鼠標事件,則需要將MouseListener
添加到JList
。 所以基本代碼是這樣的:
JList list = new JList(...);
list.addMouseListener(...);
JScrollPane scrollPane = new JScrollPane( list );
frame.add( scrollPane );
現在在您的MouseListener
中, MouseEvent
的來源將是JList
。
另請注意,在您的偵聽器中,您可以直接從 JList 中獲取所選項目的值:
JList list = (JList)mouseEvent.getSource();
System.out.println( list.getSelectedValue() );
JList list = new JList(...);
list.addMouseListener(...);
JScrollPane scrollPane = new JScrollPane( list );
frame.add( scrollPane );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.