为什么一开始工作的是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("Double clicked!");不起作用。怎么改正呢?
发布于 2014-04-29 18:58:44
这里有两个不同的侦听器对象,一个是MouseListener实例(侦听面板上的鼠标事件),另一个是ChartMouseListener实例(监听面板中图表上的鼠标事件)。它们在单独的侦听器列表中注册,来自一个对象的isDoubleClicked字段对另一个对象不可见。
ChartMouseListener与MouseListener分离的原因是JFreeChart创建了自己的事件,这些事件在“鼠标指针下面”的图表中包含有关实体的附加信息。
发布于 2019-02-22 12:53:50
要在@DavidGilbert上加起来,还可以使用ChartMouseEvent.getTrigger().getClickCount()来检测图表中的双击。
https://stackoverflow.com/questions/23370505
复制相似问题