首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >双击JList元素上的事件

双击JList元素上的事件
EN

Stack Overflow用户
提问于 2010-12-03 18:36:22
回答 3查看 77.5K关注 0票数 75

我有一台带DefaultListModelJList

如何使JList中的项对双击事件做出反应?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-03 18:45:14

代码语言:javascript
复制
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());
        }
    }
});
票数 146
EN

Stack Overflow用户

发布于 2015-03-18 16:28:07

(基于穆罕默德·萨利,接受的回复)

如果您正在使用NetBeans

选择“JList”>“Events”窗口>“mouseClicked

代码语言:javascript
复制
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);
    }
}
票数 12
EN

Stack Overflow用户

发布于 2010-12-04 00:34:51

我知道您有一个简单的解决方案,但您可能想要查看List Action,以获得一个更通用的解决方案,它将允许您使用鼠标和键盘。正确的GUI设计应该允许用户使用这两种方法中的任何一种。

使用ListAction的最基本示例是:

代码语言:javascript
复制
String[] data = { "zero", "one", "two", "three", "four", "five" };
JList list = new JList( data );

Action displayAction = new AbstractAction()
{
    public void actionPerformed(ActionEvent e)
    {
        JList list = (JList)e.getSource();
        System.out.println(list.getSelectedValue());
    }
};

ListAction la = new ListAction(list, displayAction);
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4344682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档