簡體   English   中英

雙擊重復按幾次按鈕

[英]Double-click repeating by how many times button pressed

我有一個JList,每次雙擊列表中的值時都會運行代碼。 當按下按鈕時,將填充該值。 我的問題是每次我單擊按鈕,然后雙擊JList值,無論按了多少次按鈕,它都會重復代碼。

例如,第一次看起來一切都很好,但是如果我再次按下按鈕來更改JList值,它將兩次執行兩次代碼。 如果我第三次按下它,它將執行三次代碼,依此類推。 我很陌生,因此很抱歉,這很容易。 感謝您提供任何信息。 下面的代碼讓我知道是否還有必要。

public DefaultListModel results(StringBuilder message)
{   

    DefaultListModel model = new DefaultListModel();
    model.addElement(message);
    showOption.setModel(model);

    MouseListener mouseListener = new MouseAdapter() {
        public void mouseClicked(MouseEvent e) {

            if (e.getClickCount() == 2) 
            {
                int index = showOption.locationToIndex(e.getPoint());
                Object o = showOption.getModel().getElementAt(index);
                System.out.println("Double-clicked on: " + o.toString());
            }
        }
    };

    showOption.addMouseListener(mouseListener);
    return model;
}

每次調用results您都將添加一個新的MouseListener

這個...

DefaultListModel model = new DefaultListModel();
model.addElement(message);
showOption.setModel(model);

顯示showOptionJList的現有實例(很好),但是您可以...

MouseListener mouseListener = new MouseAdapter() {
    //...
};

showOption.addMouseListener(mouseListener);

它將ANOTHER MouseListener添加到JList ,因此每次調用此方法時,都會將另一個MouseListener添加到JList

首次創建JList時,將其添加到單個MouseListener

暫無
暫無

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

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