3
JFreeChart에 의해 생성 된 도트를 한 줄로 변환하는 데 문제가 있습니다. 모든JFreeChart에서 어떻게 점들을 라인으로 전송할 수 있습니까?
첫째, 정말 도움이 몇 가지 소스가이 시점 둘째
- Adding points to XYSeries dynamically with JfreeChart
- JFreechart candlestick chart weird behaviour on drag
- http://www.java2s.com/Code/Java/Chart/JFreeChartXYLineAndShapeRendererDemo.htm
이 도달이 내 코드입니다
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.util.*;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import org.jfree.chart.*;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
public class x_y_2 extends JFrame {
private static final String title = "Connecting The Dots";
private XYSeries added = new XYSeries("Added");
private LinkedList<XYSeries> ls = new LinkedList<>();
public x_y_2(String s) {
super(s);
final ChartPanel chartPanel = createDemoPanel();
this.add(chartPanel, BorderLayout.CENTER);
JPanel control = new JPanel();
JLabel label = new JLabel("Enter 'x' value");
JTextField Field_x = new JTextField();
Field_x.setPreferredSize(new Dimension(100, 24));
JLabel label2 = new JLabel("Enter 'y' value");
JTextField Field_y = new JTextField();
JLabel error = new JLabel("importent* in case no value is entered,value
is set to '1' ");
error.setForeground(Color.RED);
Field_y.setPreferredSize(new Dimension(100, 24));
control.add(label);
control.add(Field_x);
control.add(label2);
control.add(Field_y);
control.add(new JButton(new AbstractAction("Add") {
@Override
public void actionPerformed(ActionEvent e) {
if (Field_x.getText().isEmpty()) {
Field_x.setText("1"); ;
}
if (Field_y.getText().isEmpty()) {
Field_y.setText("1");
}
Double x = Double.parseDouble(Field_x.getText());
Double y = Double.parseDouble(Field_y.getText());
added.add(x,y);
ls.add(added);
Field_x.setText("");
Field_y.setText("");
}
}));
this.add(control, BorderLayout.SOUTH);
control.add(error);
}
private ChartPanel createDemoPanel() {
JFreeChart jfreechart = ChartFactory.createScatterPlot(
title, "X", "Y", createSampleData(),
PlotOrientation.VERTICAL, true, true, false);
return new ChartPanel(jfreechart);
}
private XYDataset createSampleData() {
XYSeriesCollection xySeriesCollection = new XYSeriesCollection();
xySeriesCollection.addSeries(added);
return xySeriesCollection;
}
public static void main(String args[]) {
x_y_2 demo = new x_y_2(title);
demo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
demo.pack();
demo.setLocationRelativeTo(null);
demo.setVisible(true);
}}
,
이 내 주요 문제는 도트를 계산하는 출력
의 이미지이다. 내가 어떻게 해? 이 방법을 사용하는 것과 같은 작업을 시도했습니다.
renderer.setSeriesLinesVisible
그러나 나는 저를 위해 일하지 않았습니다.
편집 :
이 대신JFreeChart jfreechart = ChartFactory.createXYLineChart(
title, "X", "Y", createSampleData(),
PlotOrientation.VERTICAL, true, true, false);
:
솔루션이를 넣어하는 것입니다
JFreeChart jfreechart = ChartFactory.createScatterPlot(
title, "X", "Y", createSampleData(),
PlotOrientation.VERTICAL, true, true, false);
당신은 현저합니다! 나는 당신의 답을 많이 보았습니다, 정말 고마워요. – SalmanALharbi
당신은 현저합니다! 나는 당신의 답을 많이 보았습니다, 정말 고마워요. 만약 당신이 시간이 있다면 또 다른 질문이 있습니다. 점을 그리는 것이 가능한지, 모든 점을 추가 한 후 알고리즘을 끝내고 시작하여 점을 그리는 것뿐입니다. 이 부분의 문제, 도움이 될만한 도움, 그래서 간단하게 제 질문입니다 : 모든 요점이 추가되었지만 일부는 아니지만 모두에게 줄을 그릴 수 있습니까? – SalmanALharbi
[예제] (https://stackoverflow.com/a/29243713/230513)에 대한 사용자 지정 렌더러가 필요합니다. 새로운 질문을하면이 대답을 인용하십시오. – trashgod