import java.awt.*; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.NumberFormat; public class Calculator extends JFrame implements ActionListener { private JPanel panelAdder; private JLabel labela; private JLabel labelt; private JLabel labelr; private JTextField textFieldAmount; private JTextField textFieldTerm; private JTextField textFieldRate; private JTextField textFieldResult; private JButton buttonCalc; public Calculator() { initComponents(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); pack(); // Add Listeners buttonCalc.addActionListener(this); } public void initComponents() { //Initialize Components panelAdder = new JPanel(); labela = new JLabel("Amount"); textFieldAmount = new JTextField(); labelt = new JLabel("Term"); textFieldTerm = new JTextField(); labelr = new JLabel("Rate"); textFieldRate = new JTextField(); textFieldResult = new JTextField(); buttonCalc = new JButton("Calculate"); //Set Object Attributes textFieldResult.setEditable(false); textFieldResult.setColumns(8); textFieldAmount.setColumns(6); textFieldTerm.setColumns(2); textFieldRate.setColumns(2); Container contentPane = getContentPane(); contentPane.setLayout(new FlowLayout()); //Lets add the components to the panel panelAdder.add(labela); panelAdder.add(textFieldAmount); panelAdder.add(labelt); panelAdder.add(textFieldTerm); panelAdder.add(labelr); panelAdder.add(textFieldRate); panelAdder.add(buttonCalc); panelAdder.add(textFieldResult); contentPane.add(panelAdder); } public static void main(String[] args) { Calculator frame = new Calculator(); } private void setResultValue() { double amount = Double.parseDouble (textFieldAmount.getText()); double term = Double.parseDouble(textFieldTerm.getText())*12; double rate = Double.parseDouble(textFieldRate.getText()) / 100.; double result = amount * ( rate * Math.pow ( ( 1 + rate ), term ) ) / ( Math.pow( ( 1 + rate ), term ) - 1 ); textFieldResult.setText(Double.toString(result)); } public void actionPerformed(ActionEvent event) { if (event.getSource() == buttonCalc) { setResultValue(); } } }
import java.awt.*; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.NumberFormat; import java.text.DecimalFormat; public class Calculator extends JFrame implements ActionListener { private JPanel panelAdder; private JLabel labela; private JLabel labelt; private JLabel labelr; private JTextField textFieldAmount; private JTextField textFieldTerm; private JTextField textFieldRate; private JTextField textFieldResult; private JButton buttonCalc; public Calculator() { initComponents(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); pack(); // Add Listeners buttonCalc.addActionListener(this); } public void initComponents() { //Initialize Components panelAdder = new JPanel(); labela = new JLabel("Amount"); textFieldAmount = new JTextField(); labelt = new JLabel("Term"); textFieldTerm = new JTextField(); labelr = new JLabel("Rate"); textFieldRate = new JTextField(); textFieldResult = new JTextField(); buttonCalc = new JButton("Calculate"); //Set Object Attributes textFieldResult.setEditable(false); textFieldResult.setColumns(8); textFieldAmount.setColumns(6); textFieldTerm.setColumns(2); textFieldRate.setColumns(2); Container contentPane = getContentPane(); contentPane.setLayout(new FlowLayout()); //Lets add the components to the panel panelAdder.add(labela); panelAdder.add(textFieldAmount); panelAdder.add(labelt); panelAdder.add(textFieldTerm); panelAdder.add(labelr); panelAdder.add(textFieldRate); panelAdder.add(buttonCalc); panelAdder.add(textFieldResult); contentPane.add(panelAdder); } public static void main(String[] args) { Calculator frame = new Calculator(); } private void setResultValue() { double amount = Double.parseDouble (textFieldAmount.getText()); double term = Double.parseDouble(textFieldTerm.getText())*12; double rate = Double.parseDouble(textFieldRate.getText()) / 100.; double result = amount * (Math.pow(1+(rate/12), term) * rate/12) / (Math.pow(1 + rate/12, term) - 1); DecimalFormat df = new DecimalFormat("#,###.##"); textFieldResult.setText(df.format(result)); } public void actionPerformed(ActionEvent event) { if (event.getSource() == buttonCalc) { setResultValue(); } } }