import java.io.*; import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import javax.swing.*; import java.awt.print.PrinterJob; import java.awt.print.*; public class Plot2D extends JPanel implements Printable { public Graphics2D g; public Plot p1; final static Color bg = Color.white; final static Color fg = Color.black; final static Color red = Color.red; final static Color white = Color.white; final static BasicStroke stroke = new BasicStroke(1.0f); final static BasicStroke boldStroke = new BasicStroke(2.0f); PlotShapesSW ps; double xx[],yy[]; int xn; public Plot2D(Plot pi) { //Initialize drawing colors setBackground(Color.white); setForeground(Color.black); //read data from file Plot data previously defined p1=pi; xx=new double[200]; yy=new double[200]; xn=0; } public Plot2D() { //Initialize drawing colors setBackground(Color.white); setForeground(Color.black); //read data from file Plot data previously defined try{p1=new Plot(); } catch(IOException ioe) {System.err.println("IOExceptionin opening plot");} xx=new double[200]; yy=new double[200]; xn=0; } public Plot2D(String pl,String xl,String yl,int xnt,int ynt ,int xgo,int ygo,String ifn[],int ipt[],int ir[],int ig[] ,int ib[]) { //input variables // pl : plot label // xl : x axis label // yl : y axis label //xnt : x axis tic (0=off, any other:on) //ynt : y axis tic (0=off, any other:on) //xgo : x axis grid on (0=off, any other:on) //ygo : y axis grid on (0=off, any other:on) //ifn :file name array variable //ipt : plot type array variable //ir : color red component array variable //ig : color green componenet array variable //Initialize drawing colors setBackground(Color.white); setForeground(Color.black); try{ p1=new Plot(pl,xl,yl,xnt,ynt,xgo,ygo,ifn,ipt,ir,ig,ib); } catch(IOException ioe) {System.err.println("IOExceptionin opening plot");} xx=new double[200]; yy=new double[200]; xn=0; } public void setXY(double ixx[],double iyy[],int ixn) { xn=ixn; for(int i=0;i= 1) { return Printable.NO_SUCH_PAGE; } super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; drawShapes(g2); return Printable.PAGE_EXISTS; } public void drawShapes(Graphics2D g2) { g=g2; //draw Plot Dimension d=getSize(); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); int gridWidth = d.width; int gridHeight = d.height; int rowspacing=(int)(d.width/100.0); int columnspacing=(int)(d.height/50.0); int rectWidth=gridWidth-columnspacing; int rectHeight=gridHeight-rowspacing; p1.xabsmin=(int)(0.25*rectWidth); p1.yabsmin=(int)(0.2*rectHeight); p1.abswidth=(int)(0.65*rectWidth); p1.absheight=(int)(0.7*rectHeight); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); g2.setStroke(stroke); g2.setPaint(fg); g2.drawRect(p1.xabsmin,p1.yabsmin,p1.abswidth,p1.absheight); ps=new PlotShapesSW(g2,p1.xabsmin,p1.yabsmin, p1.absheight,p1.abswidth,p1.xmin,p1.xmax,p1.ymin,p1.ymax,p1.xlog,p1.ylog); if(p1.xgridon!=0) ps.drawXGrid(p1.xntic); if(p1.ygridon!=0) ps.drawYGrid(p1.yntic); int i,j; ps.drawMouseTic(xx,yy,xn); for(i=0;i