📄 main.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 + -