package bookcalc;
import java.awt.Color;
import java.awt.Component;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JSeparator;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.text.JTextComponent;
import org.eclipse.wb.swing.FocusTraversalOnArray;
public class Bookcalc {
private JFrame frmBookCalc;
private JTextField txtDistance;
private JTextField txtTime;
private JTextField txtIVelocity;
private JTextField txtMass;
private JTextField txtVelocity;
private JTextField txtAcceleration;
private JTextField txtThrust;
private String[] timeswitchtext = {"Seconds", "Minutes", "Hours", "Days", "Weeks", "Months", "Years", "Decades"};
private int timeswitch = 0;
private void Calculate()
{
double D = Double.parseDouble(txtDistance.getText());
double T = Double.parseDouble(txtTime.getText());
double IV = Double.parseDouble(txtIVelocity.getText());
double M = Double.parseDouble(txtMass.getText());
double hd = 0.5 * D * 1000;
double ht = 0.5 * Time(T);
double V = hd / ht;
double A = (2 * (hd - ht * IV)) / (ht * ht);
double F = M * A;
txtVelocity.setText(String.valueOf(V));
txtAcceleration.setText(String.valueOf(A));
txtThrust.setText(String.valueOf(F));
}
private double Time(double t)
{
double x = 0;
switch (timeswitch)
{
case 7:
x = (x == 0 ? t : x) * 10;
case 6:
x = (x == 0 ? t : x) * 12;
case 5:
x = (x == 0 ? t : x) * 30;
case 4:
x = (x == 0 ? t : x) * 7;
case 3:
x = (x == 0 ? t : x) * 24;
case 2:
x = (x == 0 ? t : x) * 60;
case 1:
x = (x == 0 ? t : x) * 60;
case 0:
x = x == 0 ? t : x;
}
return x;
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Bookcalc window = new Bookcalc();
window.frmBookCalc.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public Bookcalc() {
initialize();
}
private void initialize() {
frmBookCalc = new JFrame();
frmBookCalc.getContentPane().setFont(new Font("Tahoma", Font.PLAIN, 16));
frmBookCalc.setTitle("Book Calc");
frmBookCalc.setBounds(100, 100, 602, 356);
frmBookCalc.getContentPane().setLayout(null);
frmBookCalc.getContentPane().setBackground(Color.WHITE);
frmBookCalc.setLocationRelativeTo(null);
JLabel lblDistance = new JLabel("Distance:");
lblDistance.setHorizontalAlignment(SwingConstants.RIGHT);
lblDistance.setFont(new Font("Tahoma", Font.PLAIN, 16));
lblDistance.setBounds(24, 14, 121, 14);
frmBookCalc.getContentPane().add(lblDistance);
JLabel lblTime = new JLabel("Time:");
lblTime.setHorizontalAlignment(SwingConstants.RIGHT);
lblTime.setFont(new Font("Tahoma", Font.PLAIN, 16));
lblTime.setBounds(24, 48, 121, 14);
frmBookCalc.getContentPane().add(lblTime);
JLabel lblInitialVelocity = new JLabel("Initial Velocity:");
lblInitialVelocity.setHorizontalAlignment(SwingConstants.RIGHT);
lblInitialVelocity.setFont(new Font("Tahoma", Font.PLAIN, 16));
lblInitialVelocity.setBounds(24, 84, 121, 14);
frmBookCalc.getContentPane().add(lblInitialVelocity);
JLabel lblMass = new JLabel("Mass:");
lblMass.setHorizontalAlignment(SwingConstants.RIGHT);
lblMass.setFont(new Font("Tahoma", Font.PLAIN, 16));
lblMass.setBounds(24, 122, 121, 14);
frmBookCalc.getContentPane().add(lblMass);
JLabel lblVelocity = new JLabel("Terminal Velocity:");
lblVelocity.setHorizontalAlignment(SwingConstants.RIGHT);
lblVelocity.setFont(new Font("Tahoma", Font.PLAIN, 16));
lblVelocity.setBounds(10, 183, 135, 14);
frmBookCalc.getContentPane().add(lblVelocity);
JLabel lblAcceration = new JLabel("Acceleration:");
lblAcceration.setHorizontalAlignment(SwingConstants.RIGHT);
lblAcceration.setFont(new Font("Tahoma", Font.PLAIN, 16));
lblAcceration.setBounds(24, 217, 121, 14);
frmBookCalc.getContentPane().add(lblAcceration);
JLabel lblThrust = new JLabel("Thrust:");
lblThrust.setHorizontalAlignment(SwingConstants.RIGHT);
lblThrust.setFont(new Font("Tahoma", Font.PLAIN, 16));
lblThrust.setBounds(24, 253, 121, 14);
frmBookCalc.getContentPane().add(lblThrust);
JSeparator separator = new JSeparator();
separator.setBounds(10, 158, 565, 14);
frmBookCalc.getContentPane().add(separator);
txtDistance = new JTextField();
txtDistance.setText("160934400");
txtDistance.setFont(new Font("Tahoma", Font.PLAIN, 16));
txtDistance.setBounds(151, 11, 311, 20);
frmBookCalc.getContentPane().add(txtDistance);
txtDistance.setColumns(10);
txtTime = new JTextField();
txtTime.setText("40");
txtTime.setFont(new Font("Tahoma", Font.PLAIN, 16));
txtTime.setColumns(10);
txtTime.setBounds(151, 45, 311, 20);
frmBookCalc.getContentPane().add(txtTime);
txtIVelocity = new JTextField();
txtIVelocity.setText("3.07");
txtIVelocity.setFont(new Font("Tahoma", Font.PLAIN, 16));
txtIVelocity.setColumns(10);
txtIVelocity.setBounds(151, 81, 311, 20);
frmBookCalc.getContentPane().add(txtIVelocity);
txtMass = new JTextField();
txtMass.setText("54431");
txtMass.setFont(new Font("Tahoma", Font.PLAIN, 16));
txtMass.setColumns(10);
txtMass.setBounds(151, 119, 311, 20);
frmBookCalc.getContentPane().add(txtMass);
txtVelocity = new JTextField();
txtVelocity.setFont(new Font("Tahoma", Font.PLAIN, 16));
txtVelocity.setColumns(10);
txtVelocity.setBounds(151, 178, 311, 20);
frmBookCalc.getContentPane().add(txtVelocity);
txtAcceleration = new JTextField();
txtAcceleration.setFont(new Font("Tahoma", Font.PLAIN, 16));
txtAcceleration.setColumns(10);
txtAcceleration.setBounds(151, 214, 311, 20);
frmBookCalc.getContentPane().add(txtAcceleration);
txtThrust = new JTextField();
txtThrust.setFont(new Font("Tahoma", Font.PLAIN, 16));
txtThrust.setColumns(10);
txtThrust.setBounds(151, 250, 311, 20);
frmBookCalc.getContentPane().add(txtThrust);
JLabel lblKm = new JLabel("Km");
lblKm.setBounds(472, 14, 46, 14);
frmBookCalc.getContentPane().add(lblKm);
JLabel lblKms = new JLabel("m/s");
lblKms.setBounds(472, 86, 46, 14);
frmBookCalc.getContentPane().add(lblKms);
JLabel lblKg = new JLabel("Kg");
lblKg.setBounds(472, 124, 46, 14);
frmBookCalc.getContentPane().add(lblKg);
JLabel lblMs = new JLabel("m/s");
lblMs.setBounds(472, 183, 46, 14);
frmBookCalc.getContentPane().add(lblMs);
JLabel lblMs_1 = new JLabel("m/s^2");
lblMs_1.setBounds(472, 217, 46, 14);
frmBookCalc.getContentPane().add(lblMs_1);
JLabel lblN = new JLabel("N");
lblN.setBounds(472, 253, 46, 14);
frmBookCalc.getContentPane().add(lblN);
JButton btnCalculate = new JButton("Calculate");
btnCalculate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Calculate();
}
});
btnCalculate.setFont(new Font("Tahoma", Font.PLAIN, 16));
btnCalculate.setBounds(470, 281, 105, 23);
frmBookCalc.getContentPane().add(btnCalculate);
JButton btnExit = new JButton("Exit");
btnExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
frmBookCalc.dispatchEvent(new WindowEvent(frmBookCalc, WindowEvent.WINDOW_CLOSING));
}
});
btnExit.setFont(new Font("Tahoma", Font.PLAIN, 16));
btnExit.setBounds(10, 281, 105, 23);
frmBookCalc.getContentPane().add(btnExit);
JButton btnClear = new JButton("Clear");
btnClear.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Component[] components = frmBookCalc.getContentPane().getComponents();
for (Component component : components) {
if (component instanceof JTextField || component instanceof JTextArea) {
JTextComponent specificObject = (JTextComponent) component;
specificObject.setText("");
}
}
}
});
btnClear.setFont(new Font("Tahoma", Font.PLAIN, 16));
btnClear.setBounds(355, 281, 105, 23);
frmBookCalc.getContentPane().add(btnClear);
JComboBox cbxTime = new JComboBox();
cbxTime.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
timeswitch = cbxTime.getSelectedIndex();
}
});
cbxTime.setModel(new DefaultComboBoxModel(timeswitchtext));
cbxTime.setSelectedIndex(2);
cbxTime.setFont(new Font("Tahoma", Font.PLAIN, 16));
cbxTime.setBounds(470, 47, 105, 20);
frmBookCalc.getContentPane().add(cbxTime);
frmBookCalc.getContentPane().setFocusTraversalPolicy(new FocusTraversalOnArray(new Component[]{txtDistance, txtTime, cbxTime, txtIVelocity, txtMass, txtVelocity, txtAcceleration, btnCalculate, btnExit, btnClear}));
frmBookCalc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}