gpt4 book ai didi

java - ChartMouseListener 和 MouseListener

转载 作者:行者123 更新时间:2023-12-02 05:53:00 25 4
gpt4 key购买 nike

为什么chartMouseClicked(JFreeChart库)首先起作用,然后mouseClicked又起作用了?

boolean isDoubleClicked = false;
chartPanel.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent me) {
if (me.getClickCount() == 2 &&) {
isDoubleClicked = true;
}
}
@Override
public void mousePressed(MouseEvent me) {}
@Override
public void mouseReleased(MouseEvent me) {}
@Override
public void mouseEntered(MouseEvent me) {}
@Override
public void mouseExited(MouseEvent me) {}
});



chartPanel.addChartMouseListener(new ChartMouseListener() {
@Override
public void chartMouseClicked(ChartMouseEvent cme) {
if (isDoubleClicked)
System.out.println("Double clicked!");
}
@Override
public void chartMouseMoved(ChartMouseEvent cme) {}
});

所以,System.out.println("双击!"); 不起作用。如何纠正?

最佳答案

这里有两个不同的监听器对象,一个是 MouseListener 实例(监听面板上的鼠标事件),另一个是 ChartMouseListener 实例(监听面板上的鼠标事件)面板中图表上的鼠标事件)。它们注册在单独的监听器列表中,并且一个对象的 isDoubleClicked 字段对另一个对象不可见。

ChartMouseListenerMouseListener 分开的原因是 JFreeChart创建自己的事件,其中包含有关鼠标指针“下方”的图表中的实体的附加信息。

关于java - ChartMouseListener 和 MouseListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23370505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com