This question already has answers here:
Display mouse coordinates near mouse as hints on mouse move

(1个答案)



jfreechart general issue on the possibility of interactlively modify a displayed curve dragging mouse

(1个答案)


上个月关闭。





我有方法,它返回带有JActionChart和JFreeChart的JPanel。
在我的测试程序中,它运行良好,我只写了setContentPane(createContent());并显示为完整大小的JPanel。

当我在特殊的地方用JPanel创建主框架时(我是通过NetBeans swing构造函数完成的),我的JPanel无法显示内容,它只是保留一个空的JPanel。

我试着把它说成JPanel pan = createContent();jPanel1.add(pan); =不起作用。

我也尝试写:jPanel1 = createContent();:它不起作用。

它仅在我以后写相同的时候才起作用.... :initComponents();CrossHair cross = new CrossHair();setContentPane(cross.createContent());

因此它显示了内容,但是我程序的其他部分却无法访问。这是createContent方法:

    private JPanel createContent() {
        JFreeChart chart = createChart(createDataset());
        chartPanel = new ChartPanel(chart);
        chartPanel.addChartMouseListener(new ChartMouseListener() {

        @Override
        public void chartMouseClicked(ChartMouseEvent event) {
             //---- to not make that code big
        }

        @Override
        public void chartMouseMoved(ChartMouseEvent event) {
             //---to not make that code big
        }
    });

    CrosshairOverlay crosshairOverlay = new CrosshairOverlay();
    xCrosshair = new Crosshair(Double.NaN, Color.RED, new BasicStroke(0f));
    xCrosshair.setLabelVisible(true);
    yCrosshair = new Crosshair(Double.NaN, Color.GRAY, new BasicStroke(0f));
    yCrosshair.setLabelVisible(true);
    crosshairOverlay.addDomainCrosshair(xCrosshair);
    crosshairOverlay.addRangeCrosshair(yCrosshair);
    chartPanel.addOverlay(crosshairOverlay);
    return chartPanel;}


感谢您的建议,任何示例都可能会有所帮助

最佳答案

我没有看到ChartPaneljPanel之间的区别。

我通过使用解决了这个问题

jPanel1.add(cross.createContent(), BorderLayout.CENTER);

10-06 14:06