JFreechart 右键单击 XYItemEntity
JFreechart right click on XYItemEntity
我意识到只有当用户左键单击 chart.MousePressed() 时才会调用 chartMouseClicked 方法,而当用户右键单击图表时会调用 mouseReleased() 方法。但我需要更多东西。我需要它们 together.I 需要查找用户是否右键单击 XYItemEntity.Then 我将显示新的弹出菜单项。如果用户 select 菜单项,我将传递来自 XYITEM 的信息。如果不是 XYItemEntity,我不会更新图表的 Popupmenu。这就是我如何检查 chartMouseClicked 上的 XYITEM 实体。
panel.addChartMouseListener(new ChartMouseListener() {
public void chartMouseClicked(final ChartMouseEvent event) {
/** If Time Instance point is clicked */
if (event.getEntity() instanceof XYItemEntity) {
}}
我设法找到了结合 chartMouseMoved 和 mouseReleased 方法的解决方案。
public void chartMouseMoved(final ChartMouseEvent event) {
if (event.getEntity() instanceof XYItemEntity) {
panel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
clickedSimulationItem = (XYItemEntity) event.getEntity();
} else if (event.getEntity() instanceof PlotEntity) {
handleMouseMoveOnPlot(event);
} else {
panel.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
clickedSimulationItem = null;
}
}
private void addMouseListener() {
panel.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
if (clickedSimulationItem != null) {
panel.getPopupMenu().add(new JMenuItem("denem"));
/** update pop up */
}
}
}
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
});
}
我意识到只有当用户左键单击 chart.MousePressed() 时才会调用 chartMouseClicked 方法,而当用户右键单击图表时会调用 mouseReleased() 方法。但我需要更多东西。我需要它们 together.I 需要查找用户是否右键单击 XYItemEntity.Then 我将显示新的弹出菜单项。如果用户 select 菜单项,我将传递来自 XYITEM 的信息。如果不是 XYItemEntity,我不会更新图表的 Popupmenu。这就是我如何检查 chartMouseClicked 上的 XYITEM 实体。
panel.addChartMouseListener(new ChartMouseListener() {
public void chartMouseClicked(final ChartMouseEvent event) {
/** If Time Instance point is clicked */
if (event.getEntity() instanceof XYItemEntity) {
}}
我设法找到了结合 chartMouseMoved 和 mouseReleased 方法的解决方案。
public void chartMouseMoved(final ChartMouseEvent event) {
if (event.getEntity() instanceof XYItemEntity) {
panel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
clickedSimulationItem = (XYItemEntity) event.getEntity();
} else if (event.getEntity() instanceof PlotEntity) {
handleMouseMoveOnPlot(event);
} else {
panel.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
clickedSimulationItem = null;
}
}
private void addMouseListener() {
panel.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
if (clickedSimulationItem != null) {
panel.getPopupMenu().add(new JMenuItem("denem"));
/** update pop up */
}
}
}
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
});
}