【问题标题】:Drawing Line chart in Java [closed]用Java绘制折线图[关闭]
【发布时间】:2015-03-22 08:49:08
【问题描述】:

我想在每个点上绘制一个图形,每个点上都有一个按钮。当我单击按钮时,它会做一些事情。这是link;我希望我的图表看起来像这样。有人可以建议我怎么做吗?

【问题讨论】:

  • “有人能建议我怎么做吗?” 详情请见Creating a GUI With JFC/Swing。这“太宽泛”,无法在 SO 上涵盖。
  • docs.oracle.com/javafx/2/charts/line-chart.htm#CIHGBCFI 我找到了一种绘制图形的方法,但是如何添加按钮。你能告诉我@AndrewThompson
  • 首先,我不会使用实际的JButton 对象,而是使用Java 2D 绘制它们。然后将MouseMotionListenerMouseListener 添加到绘制图形的组件中,并使用MouseListener 和进入/离开包含每个“按钮”的Shape 的指针使用另一个侦听器检查点击。如果您遇到困难,请发布您的尝试的MCVE(最小完整可验证示例)或SSCCE(简短、自包含、正确示例)以及具体问题。
  • 考虑类似 JFreeCharts

标签: java swing user-interface jfreechart


【解决方案1】:

使用JFreeChart,将ChartMouseListener 添加到您的ChartPanel,如here 所述。在chartMouseClicked() 的实现中调用Desktop#browse(),如图here 所示。概括地说,

chartPanel.addChartMouseListener(new ChartMouseListener() {

    public void chartMouseClicked(ChartMouseEvent e) {
        // construct a URI based the result from e.getEntity()
        desktop.browse(uri);
    }

    public void chartMouseMoved(ChartMouseEvent e) {}

});

【讨论】: