栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

选择要显示的数据系列

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

选择要显示的数据系列

如所示在这里,JCheckBox是更灵活,但直接点击在图表上可能更方便。下面的示例添加了一个 ,当单击 序列中的或其时,该序列将不可见。 当然,一旦一个系列不可见,就不能再次单击它。您将需要一种恢复可见性的方法。在一些替代方案中,第一种方案 如下所示:

ChartMouseListener

XYItemEntity

LegendItemEntity

单击图表上的其他位置,可恢复所有系列的可见性。

将此与上面引用的方法结合起来,JCheckBox在实现时相应地进行切换

chartMouseClicked()

在按钮处理程序中循环浏览系列,以恢复每个系列的可见性。

import java.awt.Dimension;import java.awt.EventQueue;import javax.swing.Jframe;import org.jfree.chart.ChartMouseEvent;import org.jfree.chart.ChartMouseListener;import org.jfree.chart.ChartPanel;import org.jfree.chart.JFreeChart;import org.jfree.chart.axis.NumberAxis;import org.jfree.chart.entity.ChartEntity;import org.jfree.chart.entity.LegendItemEntity;import org.jfree.chart.entity.XYItemEntity;import org.jfree.chart.labels.StandardXYToolTipGenerator;import org.jfree.chart.plot.PlotOrientation;import org.jfree.chart.plot.XYPlot;import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;import org.jfree.data.xy.XYSeries;import org.jfree.data.xy.XYSeriesCollection;public class VisibleTest {    private void display() {        Jframe f = new Jframe("Test");        f.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);        XYSeriesCollection dataset = new XYSeriesCollection();        for (int i = 0; i < 3; i++) { XYSeries series = new XYSeries("value" + i); for (double t = 0; t < 2 * Math.PI; t += 0.5) {     series.add(t, Math.sin(t) + i); } dataset.addSeries(series);        }        NumberAxis xAxis = new NumberAxis("domain");        NumberAxis yAxis = new NumberAxis("range");        XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(true, true);        renderer.setbaseToolTipGenerator(new StandardXYToolTipGenerator());        XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer);        JFreeChart chart = new JFreeChart("Test", plot);        ChartPanel chartPanel = new ChartPanel(chart) { @Override public Dimension getPreferredSize() {     return new Dimension(640, 480); }        };        chartPanel.addChartMouseListener(new ChartMouseListener() { @Override public void chartMouseClicked(ChartMouseEvent e) {     ChartEntity ce = e.getEntity();     if (ce instanceof XYItemEntity) {         XYItemEntity item = (XYItemEntity) ce;         renderer.setSeriesVisible(item.getSeriesIndex(), false);     } else if (ce instanceof LegendItemEntity) {         LegendItemEntity item = (LegendItemEntity) ce;         Comparable key = item.getSeriesKey();         renderer.setSeriesVisible(dataset.getSeriesIndex(key), false);     } else {         for (int i = 0; i < dataset.getSeriesCount(); i++) {  renderer.setSeriesVisible(i, true);         }     } } @Override public void chartMouseMoved(ChartMouseEvent e) {}        });        f.add(chartPanel);        f.pack();        f.setLocationRelativeTo(null);        f.setVisible(true);    }    public static void main(String[] args) {        EventQueue.invokeLater(new VisibleTest()::display);    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/486473.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号