Double-click event on JList element

独自空忆成欢 提交于 2019-11-27 00:31:21

问题


I have a JList with a DefaultListModel.

How I can make an item in a JList react to double-click event?


回答1:


String[] items = {"A", "B", "C", "D"};
JList list = new JList(items);

list.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent evt) {
        JList list = (JList)evt.getSource();
        if (evt.getClickCount() == 2) {

            // Double-click detected
            int index = list.locationToIndex(evt.getPoint());
        } else if (evt.getClickCount() == 3) {

            // Triple-click detected
            int index = list.locationToIndex(evt.getPoint());
        }
    }
});



回答2:


I know you have a simple solution, but you may want to check out List Action for a more general solution that will allow you to use the mouse as well as the key board. Proper GUI design should allow the use to use either approach.




回答3:


(based on Mohamed Saligh, the accepted response)

If you are using NetBeans

Select the JList > Events window > mouseClicked

private void jListNicknamesMouseClicked(java.awt.event.MouseEvent evt) {                                            
    JList list = (JList)evt.getSource();
    if (evt.getClickCount() == 2) {
        int index = list.locationToIndex(evt.getPoint());
        System.out.println("index: "+index);
    }
}


来源:https://stackoverflow.com/questions/4344682/double-click-event-on-jlist-element

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!