当前位置: 首页 > 知识库问答 >
问题:

向JFreeChart添加水平滚动[重复]

巢权
2023-03-14

正如标题所说:如何将水平滚动条添加到我用JFreeChart创建的阴阳烛图表中?我希望用户在放大时能够水平滚动图表。现在放大起作用了,但我不能向左或向右移动。我试着把图表面板放入JScrollPane,但那是一个图表面板,而不是图表本身。我自定义的ChartPanel构造函数:

public MyChartPanel(JFreeChart chart) {
    super(chart);
    lineDrawingControllers =new EventListenerList();
    this.setMouseZoomable(false);
    this.addMouseListener(mouseHandler);
    this.addMouseMotionListener(mouseHandler);
    this.setPopupMenu(null);
    this.linePopupMenu=new JPopupMenu();
    linePopupMenuListener=new LinePopupMenuListener();
}

我的自定义Jboard,我在其中创建图表和图表面板,并将图表面板放在JScrollPane中:

public MyCandleStickChart() {
    ohlcSeries = new OHLCSeries("Test data");
    ohlcSeriesCollection = new OHLCSeriesCollection();
    ohlcSeriesCollection.addSeries(ohlcSeries);
    ohlcSeries=ohlcSeriesCollection.getSeries(0);

    chart= ChartFactory.createCandlestickChart("Default Chart", "Time", "Value", ohlcSeriesCollection, true);
    chart.getXYPlot().setOrientation(PlotOrientation.VERTICAL);
    chartPanel=new MyChartPanel(chart);
    chartPanel.setDisplayToolTips(false);
    jScrollPane=new JScrollPane(chartPanel);
    jScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    add(jScrollPane);
    add(tooltipPanel);
}

然后,我将MyCandleStickChart JPanel添加到主应用程序框架中:

myCandleStickChart=new MyCandleStickChart();
applicationFrame.add(myCandleStickChart, BorderLayout.CENTER);

共有1个答案

徐杰
2023-03-14

如果在XYPlot上调用setDomainPannable(true),实际上可以左右移动它。看起来像图表。getXYPlot()。在您的情况下,setDomainPannable(true)。还有一种方法setRangePannable(布尔值pannable)分别用于范围方向的平移。当我很久以前使用它时,通过拖动鼠标中键可以移动图表。我不知道你现在的情况会是怎样的:)但是如果你没有其他想法,这个方法是一个很好的开始。可能是,如果您查看那里的源代码,那么您可以为相同的功能创建自己的自定义滚动条。

Upd.:或者,您也可以通过鼠标滚轮或其他方式增加/减少ChartPanel的大小,而无需使用JFreeChart的缩放功能。然后JScrollPane将完成这项工作。如果您只想在全球范围内进行扩展,那么这样做很好,也很容易。但是,如果您想要用户选择区域的漂亮缩放,那么我将研究JFreeChart的“平移”定制。

upd2.:我可能错了鼠标中键。可能是CTRL鼠标拖动,就像@trash天提供的链接一样

 类似资料:
  • 我正在制作一个应用程序,其中我使用和类来制作一个可滚动的水平卡片堆栈。我已经成功地实现了,但我的问题是刷卡向右的方向,我想刷卡向左的方向。 我对SO做了一些研究,发现了1和2 更新:我仍然在努力,几乎没有发现很多,因为它仍然很难改变滚动的方向在回收,所以任何人仍然想帮助我,是欢迎的。 我还发现方法传递滚动位置和direcion可能我错了,但beow code可能是解决方案 我的主要班级 这是我的s

  • 问题内容: 有没有一种方法可以将水平滚动条添加到HTML表格中?我实际上需要根据表的增长方式在垂直和水平方向上都可以滚动,但我无法显示任何滚动条。 问题答案: 您是否尝试过CSS 属性? 更新 正如其他用户指出的那样, 这不足以 添加滚动条。 因此,请参阅下面的评论和答案。

  • 我使用绘制图表。我有另一个要求,我需要显示两个图表水平。 我有什么办法可以把这两张图表做成单行吗? 编辑:实际上,我希望它像您的示例一样。为此,您使用了,但这里我使用的是。

  • 问题内容: 我正在尝试创建一系列只能水平滚动的照片。 它应该看起来像这样的 但是,只有通过指定包含照片的的宽度,才能实现上述目的(因此它们不会“自动换行”)。如果我不放宽- 看起来像这样; 使用CSS可以防止固定宽度的图像发生变化,该怎么办。 谢谢 问题答案: 您可以使用与。这样写:

  • 问题内容: 我已经尝试将平滑的滚动功能添加到我的网站已有一段时间了,但似乎无法使其正常工作。 这是与导航有关的HTML代码: 这是我添加的JS代码: 对于它的价值,这里是我什么我迄今所做收到信息,并在这里是我在它目前的形式现场。如果可以的话,我给您烤馅饼,饼干或其他东西。谢谢! 问题答案: 您真的需要那个插件吗?您可以为scrollTop属性设置动画:

  • 我有个问题: 我想创建一个chatwebapp,并使用Bootstrap进行布局。不幸的是,在下面的代码中,我得到了一个不应该存在的水平滚动条。我使用列和行,我知道在引导css中有一个填充,但当我试图移除它时,实际上什么也没有发生,滚动条仍停留在那里。也许你们能帮我。 null null