import java.awt.BorderLayout; import java.awt.Color; import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JSlider; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import swing1.SwingConsole; /** * 正弦曲线 * */ class SineDraw extends JPanel { private static final int SCALEFACTOR = 200; //ScaleFactor: 比例系数;因子;比例尺因子 private int cycles; //希望的完整的正弦波个数 private int points; //将要绘制的点的总数 private double[] sines; //包含了正弦函数的值 private int[] pts; //包含了将要绘制在JPanel上的y坐标 public SineDraw() { setCycles(5); } public void paintComponent(Graphics g){ super.paintComponent(g); int maxWidth = getWidth(); //得到Component的宽度 double hstep = (double)maxWidth / (double)points; //每个点所占宽度 int maxHeight = getHeight(); //得到Component的高度 pts = new int[points]; for(int i = 0; i < points; i++) pts[i] = (int)(sines[i] * maxHeight/2 * .95 + maxH