Java 沙特尔·穆塞利斯滕纳和穆塞利斯滕纳
为什么一开始使用的是ChartMouseClick(JFreeChart库),然后又使用了MouseClickJava 沙特尔·穆塞利斯滕纳和穆塞利斯滕纳,java,mouseevent,jfreechart,mouselistener,mouseclick-event,Java,Mouseevent,Jfreechart,Mouselistener,Mouseclick Event,为什么一开始使用的是ChartMouseClick(JFreeChart库),然后又使用了MouseClick boolean isDoubleClicked = false; chartPanel.addMouseListener(new MouseListener() { @Override public void mouseClicked(MouseEvent me) { if (me.getClickCount() == 2 &am
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
字段对另一个对象不可见
ChartMouseListener
与MouseListener
分开的原因是,它创建了自己的事件,其中包含有关鼠标指针“下方”图表中实体的附加信息。要在@DavidGilbert上加起来,还可以使用ChartMouseEvent.getTrigger().getClickCount()
检测图表中的双击。我决定将所有信息添加到MouseListener
中,并从ChartMouseListener
中删除。谢谢你的建议!