【发布时间】:2017-05-22 00:29:41
【问题描述】:
我有这段代码来绘制图形,这很好用。我这里需要两件事
- 在域轴 (x) 上我希望能够滚动。
- 在标记上我看到一条粗粗线。我希望能够看到这个标记的一些可读文本。
放大后我看到了这个
-
在域轴上我也有毫秒值。我可以将它映射到人类可读的日期吗?
public class Grapher extends ApplicationFrame { public Grapher(final String title, List<PriceModel> priceModels) { super(title); final XYSeries series = new XYSeries("foo"); double max = Double.MIN_VALUE, min = Double.MAX_VALUE; for (int i = 0; i < priceModels.size(); i++) { double price = priceModels.get(i).getPrice(); if (price < min) { min = price; } if (price > max) { max = price; } series.add((double) priceModels.get(i).getDate(), price); } final XYSeriesCollection data = new XYSeriesCollection(series); final JFreeChart chart = ChartFactory.createXYLineChart( "XY Series Demo", "X", "Y", data, PlotOrientation.VERTICAL, true, true, false ); for (int i = 0; i < priceModels.size(); i++) { if (priceModels.get(i).getAction() != null) { Marker marker = new ValueMarker((double) priceModels.get(i).getDate()); marker.setLabelAnchor(RectangleAnchor.BOTTOM_RIGHT); marker.setLabelTextAnchor(TextAnchor.TOP_RIGHT); if (priceModels.get(i).getAction() == Types.Action.SELL) { marker.setPaint(Color.green); marker.setLabel("SELL"); } else { marker.setPaint(Color.red); marker.setLabel("BUY"); } marker.setStroke(new BasicStroke(10.0f)); chart.getXYPlot().addDomainMarker(marker); } } chart.getXYPlot().setBackgroundPaint(Color.white); chart.getXYPlot().getRenderer().setPaint(Color.BLUE); chart.getXYPlot().getRangeAxis().setRange(min - 1, max + 1); final ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setBackground(Color.WHITE); chartPanel.setRangeZoomable(true); chartPanel.setPreferredSize(new java.awt.Dimension(500, 270)); setContentPane(chartPanel); } public static void draw(List<PriceModel> priceModels) { final Grapher demo = new Grapher("foo", priceModels); demo.pack(); RefineryUtilities.centerFrameOnScreen(demo); demo.setVisible(true); } }
【问题讨论】:
-
您是否尝试过将
chartPane放入JScrollPane中? -
@MadProgrammer 我该怎么做?
-
@MadProgrammer:在滚动窗格之前,我会看一些其他的东西;更多内容如下。
-
@trashgod 不得不承认我并没有真正使用过 JFreeChart
标签: java swing jfreechart