为什么一开始工作chartMouseClicked(JFreeChart库),然后已经鼠标点击?
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("Double clicked!");
不起作用。如何纠正?
答案 0 :(得分:2)
这里有两个不同的侦听器对象,一个是MouseListener
实例(用于侦听面板上的鼠标事件),另一个是ChartMouseListener
实例(用于侦听图表上的鼠标事件)在小组中)。它们在单独的侦听器列表中注册,而另一个对象的isDoubleClicked
字段对另一个对象不可见。
ChartMouseListener
与MouseListener
分开的原因是JFreeChart创建了自己的事件,其中包含有关图表中实体的其他信息,该图表位于"下面。鼠标指针。
答案 1 :(得分:0)
要添加@DavidGilbert,您还可以使用ChartMouseEvent.getTrigger().getClickCount()
检测图表中的双击。