⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.java

📁 绘制动态绘制正弦波和余弦波的程序
💻 JAVA
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package task71;import java.awt.*; import java.awt.event.*; import javax.swing.*;public class Main {        public static void main(String[] args) {    JFrame JFshiboqi=new JFrame("实验7进阶");     JFshiboqi.setSize(600,600);    JFshiboqi.setLocation(50,50);        JFshiboqi.getContentPane().setLayout(new GridLayout(2,1));    JFshiboqi.getContentPane().add(new zhengxianbo());    JFshiboqi.getContentPane().add(new yuxianbo());    JFshiboqi.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    JFshiboqi.show();    }}class zhengxianbo  extends JPanel  implements  ActionListener{private  JLabel  JLzx=new  JLabel("正弦波 y=Asin(wt+v)+a");  private  JLabel  JLA=new  JLabel("A:"); private  JLabel  JLw=new  JLabel("w:"); private  JLabel  JLv=new  JLabel("v:"); private  JLabel  JLa=new  JLabel("a:"); private JLabel  JLhz=new JLabel("频率"); private JTextField  JTA=new  JTextField("100",3); private JTextField  JTw=new  JTextField("1",3); private  JTextField  JTv=new  JTextField("0",3); private  JTextField  JTa=new  JTextField("0",3); private  JTextField  JThz=new  JTextField("200",3); private  JPanel  JPA=new  JPanel (); private  JPanel  JPw=new  JPanel(); private  JPanel  JPv=new  JPanel(); private  JPanel JPAwv=new JPanel(); private  JPanel JPa=new JPanel();  private  JPanel JPhz=new JPanel();public static Thread  zx=new Thread(new boThread()); private  JButton JBqd=new JButton("开始"); private   JButton JBstop=new JButton("停止");  private   JButton JBhf=new JButton("继续"); public static  zhengxianbo1 ZX=new zhengxianbo1();public static double JtA,Jtw,Jtv,Jta; public static int Jthz; public  zhengxianbo() {                JLzx.setHorizontalAlignment(JLabel.CENTER);     JLA.setHorizontalAlignment(JLabel.RIGHT);     JLw.setHorizontalAlignment(JLabel.RIGHT);     JLv.setHorizontalAlignment(JLabel.RIGHT);      JLa.setHorizontalAlignment(JLabel.RIGHT);       JLhz.setHorizontalAlignment(JLabel.RIGHT);     JTA.setHorizontalAlignment(JTextField.RIGHT);     JTw.setHorizontalAlignment(JTextField.RIGHT);     JTv.setHorizontalAlignment(JTextField.RIGHT);     JTa.setHorizontalAlignment(JTextField.RIGHT);     JThz.setHorizontalAlignment(JTextField.RIGHT);  JPA.setLayout(new  GridLayout(1,2));  JPA.add(JLA);  JPA.add(JTA);  JPw.setLayout(new  GridLayout(1,2));  JPw.add(JLw);  JPw.add(JTw);  JPv.setLayout(new  GridLayout(1,2,1,0));  JPv.add(JLv);  JPv.add(JTv);  JPa.setLayout(new  GridLayout(1,2,1,0));  JPa.add(JLa);  JPa.add(JTa);   JPhz.setLayout(new  GridLayout(1,2,1,0));   JPhz.add(JLhz);   JPhz.add(JThz);  JPAwv.setLayout(new GridLayout(1,7));  JPAwv.add(JPA);  JPAwv.add(JPw);  JPAwv.add(JPv);  JPAwv.add(JPa);  JPAwv.add(JPhz);  JPAwv.add(JBqd);  JPAwv.add(JBstop);   JPAwv.add(JBhf);  this.setLayout(new BorderLayout());  this.add( JLzx,BorderLayout.NORTH);   //JTin.setBackground(new Color(137,193,11));  this.add(JPAwv,BorderLayout.SOUTH);  this.add(ZX,BorderLayout.CENTER);  JBqd.addActionListener(this);  JBstop.addActionListener(this);  JBhf.addActionListener(this); }public void  actionPerformed(ActionEvent e){if(e.getSource()==JBqd) {      Jtw= Float.parseFloat(JTw.getText());    JtA= Float.parseFloat(JTA.getText());    Jtv= Float.parseFloat(JTv.getText());    Jta= Float.parseFloat(JTa.getText());    Jthz=Integer.parseInt(JThz.getText());    zx.start();     } if(e.getSource()==JBstop) {zx.suspend(); } if(e.getSource()==JBhf) {zx.resume(); } }}class boThread implements  Runnable{        public boThread() { } public void run() { while(true)   {      zhengxianbo1.e+=200;    if(zhengxianbo1.e==600)zhengxianbo1.e=0;     zhengxianbo.ZX.repaint();          try   { zhengxianbo.zx.sleep(zhengxianbo.Jthz);        }catch(Exception e)   {e.printStackTrace();   }   }  }}class  zhengxianbo1 extends JPanel {  public  static int e=0;    public zhengxianbo1()    {    }    public void paintComponent(Graphics g){    Color s=new Color(137,193,11);     g.setColor(s);     g.fill3DRect(0, 0,800, 200, true);     g.setColor(Color.BLACK);     g.drawLine(100, 100,800,100);     g.drawLine(100, 10, 100, 100);    int xtemp=100,ytemp=100,X,Y;      System.out.println("963");     for(int a=e;a<=e+200;a++){            X=100+a;                   Y=100-(int)((zhengxianbo.JtA*Math.sin((zhengxianbo.Jtw*(a/100.0*Math.PI))+zhengxianbo.Jtv))+zhengxianbo.Jta);            if(X==xtemp&&Y==ytemp) continue;           else{                g.fillRect(X, Y, 1, 1);               xtemp=X;            ytemp=Y;      }    }}}class yuxianbo  extends JPanel   implements  ActionListener{private  JLabel  JLyx=new  JLabel("余弦波 y=Acos(wt+v)+a"); private  JLabel  JLA=new  JLabel("A:"); private  JLabel  JLw=new  JLabel("w:"); private  JLabel  JLv=new  JLabel("v:"); private  JLabel  JLa=new  JLabel("a:");  private JLabel  JLhz=new JLabel("频率"); private  JTextField  JTA=new  JTextField("100",3); private  JTextField  JTw=new  JTextField("1",3); private  JTextField  JTv=new  JTextField("0",3); private  JTextField   JTa=new  JTextField("0",3); private  JTextField   JThz=new  JTextField("200",3); private  JPanel  JPA=new  JPanel (); private  JPanel  JPw=new  JPanel(); private  JPanel  JPv=new  JPanel(); private  JPanel  JPa=new  JPanel(); private  JPanel  JPhz=new  JPanel(); private  JPanel JPAwv=new JPanel();  private  JButton JBqd=new JButton("开始");  private  JButton JBstop=new JButton("停止");   private  JButton JBhf=new JButton("继续");public  static yuxianbo1 YX=new yuxianbo1();public  static double JtA1,Jtw1,Jtv1,Jta1;public static  int Jthz;public static Thread  yx=new Thread(new boThread1()); public yuxianbo () {         JLyx.setHorizontalAlignment(JLabel.CENTER);     JLA.setHorizontalAlignment(JLabel.RIGHT);     JLw.setHorizontalAlignment(JLabel.RIGHT);     JLv.setHorizontalAlignment(JLabel.RIGHT);     JLa.setHorizontalAlignment(JLabel.RIGHT);     JLhz.setHorizontalAlignment(JLabel.RIGHT);     JTA.setHorizontalAlignment(JTextField.RIGHT);     JTw.setHorizontalAlignment(JTextField.RIGHT);     JTv.setHorizontalAlignment(JTextField.RIGHT);     JTa.setHorizontalAlignment(JTextField.RIGHT);     JThz.setHorizontalAlignment(JTextField.RIGHT);  JPA.setLayout(new  GridLayout(1,2));  JPA.add(JLA);  JPA.add(JTA);  JPw.setLayout(new  GridLayout(1,2));  JPw.add(JLw);  JPw.add(JTw);  JPv.setLayout(new  GridLayout(1,2));  JPv.add(JLv);  JPv.add(JTv);  JPa.setLayout(new  GridLayout(1,2));  JPa.add(JLa);  JPa.add(JTa);  JPhz.setLayout(new  GridLayout(1,2));  JPhz.add(JLhz);  JPhz.add(JThz);  JPAwv.setLayout(new GridLayout(1,7));  JPAwv.add(JPA);  JPAwv.add(JPw);  JPAwv.add(JPv);  JPAwv.add( JPhz);  JPAwv.add(JBqd);  JPAwv.add(JBstop );  JPAwv.add(JBhf );  this.setLayout(new BorderLayout());  this.add( JLyx,BorderLayout.NORTH);  this.add(JPAwv,BorderLayout.SOUTH);   this.add(YX,BorderLayout.CENTER);    JBqd.addActionListener(this);    JBhf.addActionListener(this);     JBstop.addActionListener(this); } public void  actionPerformed(ActionEvent e){if(e.getSource()==JBqd) {  Jtw1= Float.parseFloat(JTw.getText());    JtA1= Float.parseFloat(JTA.getText());    Jtv1= Float.parseFloat(JTv.getText());    Jta1= Float.parseFloat(JTa.getText());    Jthz=Integer.parseInt(JThz.getText());    yx.start(); } if(e.getSource()==JBstop) {yx.suspend(); } if(e.getSource()==JBhf) {yx.resume(); }}}class boThread1 implements  Runnable{        public boThread1() { } public void run() { while(true)   { yuxianbo1.e1+=200;     if(yuxianbo1.e1==600)yuxianbo1.e1=0;     yuxianbo.YX.repaint();     try   { yuxianbo.yx.sleep(yuxianbo.Jthz);   }catch(Exception e)   {e.printStackTrace();   }   }  }}class yuxianbo1 extends JPanel{ public  static int e1=0;    public yuxianbo1() { }    public void paintComponent(Graphics g){    Color s=new Color(137,193,11);     g.setColor(s);     g.fill3DRect(0, 0,800, 200, true);     g.setColor(Color.BLACK);     g.drawLine(100, 100, 800,100);     g.drawLine(100, 10, 100, 100);    int xtemp=100,ytemp=100,X,Y;       for(int a=e1;a<=e1+200;a++){            X=100+a;      Y=100-(int)((yuxianbo.JtA1*Math.cos((yuxianbo.Jtw1*(a/100.0*Math.PI))+yuxianbo.Jtv1))+yuxianbo.Jta1);            if(X==xtemp&&Y==ytemp) continue;           else{                g.fillRect(X, Y, 1, 1);               xtemp=X;            ytemp=Y;      }    }}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -