java - JFreechart 右键单击​​ XYItemEntity

标签 java jfreechart

我意识到,只有当用户左键单击图表时,才会调用 ChartMouseClicked 方法。当用户右键单击图表时,会调用 MousePressed() 和 mouseReleased() 方法。但我还需要更多东西。我需要它们在一起。我需要查找用户是否右键单击 XYItemEntity。然后我将显示新的弹出菜单项。如果用户选择菜单项,我将从 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
        }
    });
}

关于java - JFreechart 右键单击​​ XYItemEntity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48227006/

相关文章:

java - Discord bot - Js 事件监听器发送多条消息

java - Java如何创建主线程

java - Java Map 中的相同对象 ID

java - JFreeChart 使用颜色映射在 2D 图形中表示 3D 数据

java - DynamicTimeSeriesCollection 中的 XYTextAnnotation

java - 如何根据频率值更改条形图颜色

java - JInternalFrame 中的 JFreechart 异常

java - 如何在 Java 中定义一个常量类?

java - 当/否则语句多个条件时出现 JSTL 错误

Java JFreeChart - 如何将按钮添加到图形名称的左侧?