📄 example2.java
字号:
import java.awt.*;import java.applet.*;import java.net.URL;import java.util.*;import graph.*;/***************************************************************************** Applet example2** Version 1.0 January 1996****************************************************************************** Copyright (C) 1996 Leigh Brookshaw**** This program is free software; you can redistribute it and/or modify** it under the terms of the GNU General Public License as published by** the Free Software Foundation; either version 2 of the License, or** (at your option) any later version.**** This program is distributed in the hope that it will be useful,** but WITHOUT ANY WARRANTY; without even the implied warranty of** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the** GNU General Public License for more details.**** You should have received a copy of the GNU General Public License** along with this program; if not, write to the Free Software** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.****************************************************************************** This is a simple applet that creates a Scroll Chart using the ** Graph2D class library***************************************************************************/public class example2 extends Applet { Graph2D graph; Label title; DataSet data1 = new DataSet(); CalculateData cd1; Axis yaxis_right;/*** In milliseconds how often do we want to add a new data point.*/ int period = 500;/*** Maximum number of points to display before scrolling the data*/ int maximum = 25; URL markersURL;/*** Initialize the applet. The Parameters passed are the title of the plot** the marker file to use and the update period in milliseconds*/ public void init() { int i; int j;/*** Get the passed parameters*/ String st = getParameter("TITLE"); String mfile = getParameter("MARKERS"); try { period = Integer.parseInt(getParameter("PERIOD")); } catch (Exception e) { System.out.println("Frequency parameter not an Integer!"); }/*** Create the Graph instance and modify the default behaviour*/ graph = new Graph2D(); graph.zerocolor = new Color(0,255,0); graph.borderTop = 50; graph.borderBottom = 50;/*** Create the Title*/ title = new Label(st, Label.CENTER); title.setFont(new Font("TimesRoman",Font.PLAIN,25)); setLayout( new BorderLayout() ); add("North", title); add("Center", graph);/*** Load a file containing Marker definitions*/ try { markersURL = new URL(getDocumentBase(),mfile); graph.setMarkers(new Markers(markersURL)); } catch(Exception e) { System.out.println("Failed to create Marker URL!"); } /*** Modify the default Data behaviour*/ data1.linecolor = new Color(255,0,0); data1.marker = 1; data1.markercolor = new Color(100,100,255);/*** Setup the Axis. Attach it to the Graph2D instance, and attach the data** to it.*/ yaxis_right = graph.createAxis(Axis.RIGHT); yaxis_right.attachDataSet(data1); yaxis_right.setLabelFont(new Font("Helvetica",Font.PLAIN,20)); graph.attachDataSet(data1);/*** Calculate the data asynchronously using a new Thread.*/ cd1 = new CalculateData(data1,graph,period,maximum); cd1.start(); }}/*** Here is the Thread class to calculate the data and append it to the existing** data set.** This class is easily modified to get the data from a server ** or the local machine. Currently the data is Random.*/class CalculateData extends Thread {// local copy of the update period in milliseconds int p = 1000; DataSet d; Graph2D g;// local copy of the maximum number of points. int m = 25; Random random = new Random(); public CalculateData(DataSet ds, Graph2D g, int p, int m) { this.d = ds; this.g = g; if(p > 100 ) this.p = p; if(m > 0 ) this.m = m; } public void run() { int i =0; double data[] = new double[2]; int count = 0; if(d == null) return; setPriority(Thread.MIN_PRIORITY); while(true) { count++; if(count >= m) d.delete(0,0); data[1] = (2.0*random.nextDouble() - 1.0)*15.0; data[0] = count; try { d.append(data,1); } catch (Exception e) { System.out.println("Error appending Data!"); } d.yaxis.maximum = 15.0; d.yaxis.minimum = -15.0;// To avoid flashing try and repaint halfway through the sleep g.repaint(p/2); try { sleep(p); } catch(Exception e) { } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -