최근에 실시간 곡선 차트를 사용하고 싶습니다. 온라인으로 찾았습니다. 이를 구현하는 두 가지 방법이 있습니다. 하나는 jfreechart memoryusagedemo.java의 공식 사례입니다. java.swing.timer를 구현하는 내부 클래스를 통해 실시간 데이터는 청취자의 Timeseries에 추가됩니다. 타이머가 실시간으로 실행 되므로이 방법에는 아무런 문제가 없습니다. 코드를 참조 할 수 있습니다.
또 다른 방법은 실시간 클래스의 실행 가능한 인터페이스를 구현하는 것입니다. run () 메소드에서 실시간 데이터는 무한 루프를 통해 타임시에 추가됩니다. 다음은 더 간단한 구현 코드입니다.
//realtimechart.java import org.jfree.chart.chartfactory; import org.jfree.chart.chartpanel; import org.jfree.chart.jfreechart; import org.jfree.chart.axis.valueaxis; import org.jfree.chart.plot.xyplot; import org.jfree.data.time.millisecond; import org.jfree.data.time.timeseries; import org.jfree.data.time.timeseriesCollection; 공개 클래스 RealTimeChart는 ChartPanel 구현을 확장합니다. 개인 긴 값 = 0; public realTimeChart (String ChartContent, String Title, String YaxisName) {super (createChart (ChartContent, Title, YaxisName)); } private static jfreechart createChart (String ChartContent, 문자열 제목, String yaxisName) {// 시계열 객체 생성 객체 시간 세리어 = new Timeseries (ChartContent, millisecond.class); TimesSeriesCollection TimesSeriesCollection = New TimeseriesCollection (TimesSeries); jfreechart jfreechart = chartfactory.createTimeserieschart (제목, "TimeseriesCollection (초), yaxisName, TimesSeriesCollection, true, true, false); xyplot xyplot = jfreechart.getXyPlot (); // OnorthoGonal setting valueaxis = xyplot.getDomAnainaxis = xyplot.getOnation. // valueaxis.setAutorange (true); // valueaxis.setRange (0.0d,200D); system.println (Math.random ()*20+80); { / ** * @param args * / public static void main (string [] args) {jframe frame = realtimechart rtcp = "랜덤 데이터", "랜덤 숫자", "숫자 값"; frame.set -Visible (true) (rtcp); start ();두 가지 방법, 즉 그래프가 구현 될 때마다 실시간 데이터를 매개 변수를 통해 전송할 수 없으므로 다시 작성해야합니다. 실시간 곡선 드로잉 클래스를 캡슐화하고 일부 매개 변수를 전달하거나 누가 더 나은 방법을 갖도록 실시간 데이터를 전달할 수 있는지 궁금합니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.