/* * ftab.java - revised 20 Jan 08 - width 363, height 405 * @author jackord@kw.igs.net * Euler/Feynman table * */ import java.applet.Applet; import java.awt.*; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class ftab extends Applet implements ActionListener { int kk=0; String b1s="Print Table"; Button b1=new Button(b1s); public void init() { setBackground(new Color(211, 211, 211)); // Light Gray Background add(b1); b1.addActionListener(this); } public void paint(Graphics g) { float k, m, dt, t, y, v, a; int n, d, c1, c2, c3, c4, r; k=8; m=2; dt=(float).2; n=5; d=16; c1=11; c2=101; c3=191; c4=281; r=3*d; g.setColor(Color.black); g.drawRect(0, 32, 362, 372); if (kk>0) { g.setFont(new Font("TimesRoman", Font.PLAIN, 14)); // Euler Algorithm g.drawString("Euler Algorithm", c1, r); r=r+d; g.drawString("Time", c1, r); g.drawString("Position", c2, r); g.drawString("Velocity", c3, r); g.drawString("Acceleration", c4, r); r=r+d; t=0; y=0; v=(float)2.8; a=-k*y/m; g.drawString(""+t, c1, r); g.drawString(""+y, c2, r); g.drawString(""+v, c3, r); g.drawString(""+a, c4, r); r=r+d; for (int i=1; i<=n; i=i+1) { t=t+dt; y=y+v*dt; v=v+a*dt; a=-k*y/m; g.drawString(""+t, c1, r); g.drawString(""+y, c2, r); g.drawString(""+v, c3, r); g.drawString(""+a, c4, r); r=r+d; } r=r+d; // Feynman Algorithm g.drawString("Feynman Algorithm", c1, r); r=r+d; g.drawString("Time", c1, r); g.drawString("Position", c2, r); g.drawString("Velocity", c3, r); g.drawString("Acceleration", c4, r); r=r+d; t=0; y=0; v=(float)2.8; a=-k*y/m; g.drawString(""+t, c1, r); g.drawString(""+y, c2, r); g.drawString(""+v, c3, r); g.drawString(""+a, c4, r); r=r+d; v=v+a*dt/2; g.drawString(""+(t+dt/2), c1, r); g.drawString(""+v, c3, r); r=r+d; for (int i=1; i<=n; i=i+1) { t=t+dt; y=y+v*dt; a=-k*y/m; v=v+a*dt; g.drawString(""+t, c1, r); g.drawString(""+y, c2, r); g.drawString(""+a, c4, r); r=r+d; g.drawString(""+(t+dt/2), c1,r); g.drawString(""+v, c3, r); r=r+d; } kk=0; } } public void actionPerformed(ActionEvent e) { // Button String tst; tst=e.getActionCommand(); if (b1s.equals(tst)) { kk=1; } repaint(); } }