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 Plot2D2 extends JPanel implements Printable { public Graphics2D g; public Plot2 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 Plot2D2(Plot2 pi) { //Initialize drawing colors setBackground(Color.white); setForeground(Color.black); //read data from file Plot1 data previously defined p1=pi; 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); 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