看来,Windows 8 平板电脑的 MultiClickInterval 较低。
您可以使用以下行获取该值: Toolkit.getDefaultToolkit().getDesktopProperty("awt.multiClickInterval")
我的解决方法是,您使用 Timer 和 TimerTask 编写自己的 MultiClickInterval:
您需要一个静态Map<java.awt.Component, Integer>来保存每个Component.
public static final Map<java.awt.Component, Integer> MULTI_CLICK_MAP = new HashMap<java.awt.Component, Integer>();
你还需要一个java.util.Timer
private Timer timer = new Timer();
在方法中,您增加组件的计数器。当它为 2 时,您执行代码。TimerTask 将在定义的时间后重置计数器。
您的方法将如下所示:
private void jListItemsMouseClicked(java.awt.event.MouseEvent evt) { 
    Component comp = evt.getComponent();
    //added the component to the map or increase the counter
    if(MULTI_CLICK_MAP.containsKey(comp)) {
        MULTI_CLICK_MAP.put(comp, 1);
    } else {
        int oldCounter = MULTI_CLICK_MAP.get(comp);
        MULTI_CLICK_MAP.put(comp, oldCounter + 1);
    }
    //check for double click
    if (MULTI_CLICK_MAP.get(comp) == 2) {
        MULTI_CLICK_MAP.remove(comp);
        //here is your logic
        m_ReturnProduct = (ItemsInfo) jListItems.getSelectedValue();
        if (m_ReturnProduct != null) {
            buttonTransition(m_ReturnProduct);
        }
    } 
    else {
        //start the TimerTask that resets the counter. this will reset after 1 second (1000 milliseconds)
        this.timer.schedule(new ClickReseter(comp), 1000);
    }
} 
ClickReset 是一个简单的 TimerTask,它包含Component
public class ClickReseter extends TimerTask {
    private Component component;
    public ClickReseter(Component component)
    {
        this.component = component;
    }
    @Override
    public void run()
    {
        MULTI_CLICK_MAP.remove(component);
    }
}
我希望这对你有用。它没有测试它!如果您有任何问题随时问。