Membuat Kalkulator Dengan Java

Assalamualaikum.wr.wb
Bertemu lagi dengan saya tidak bosan"nya saya posting artikel pada blog ini biar dapat membantu teman" semua kalau ada trouble dalam permograman...
pada hari ini saya akan share cara permbuatan Kalkulator dengan java 

Langsung aja berikut souce dan listning
::: Listing Program Utama :::
Class Kalkulator
package KalkulatorJefri;
import java.awt.*;
import javax.swing.*;
/**
*
* Programmer Jefri www.click-unic.blogspot.com
*/
public class Kalkulator extends JFrame{
private JButton [] buttons;
private JTextField display;
public Kalkulator(String title)
{
super(title);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
addButtons();
addDisplay();
CalculatorListener listener = new CalculatorListener(display);
for (int i = 0; i < buttons.length; i++)
{
buttons[i].addActionListener(listener);
}
}
private void addButtons()
{
JPanel center = new JPanel(new GridLayout(4, 4, 10, 10));
buttons = new JButton[16];
for(int i = 0; i <= 9; i++)
{
buttons[i] = new JButton(“” + i);
}
buttons[10] = new JButton(“/”);
buttons[11] = new JButton(“*”);
buttons[12] = new JButton(“-”);
buttons[13] = new JButton(“+”);
buttons[14] = new JButton(“=”);
buttons[15] = new JButton(“.”);
for(int i = 7; i <= 10; i++)
{
center.add(buttons[i]);
}
for(int i = 4; i <= 6; i++)
{
center.add(buttons[i]);
}
center.add(buttons[11]);
for(int i = 1; i <= 3; i++)
{
center.add(buttons[i]);
}
center.add(buttons[12]);
center.add(buttons[0]);
center.add(buttons[15]);
center.add(buttons[14]);
center.add(buttons[13]);
this.getContentPane().add(center, BorderLayout.CENTER);
}
private void addDisplay()
{
JPanel north = new JPanel(new BorderLayout());
display = new JTextField();
display.setEditable(false);
display.setBackground(Color.WHITE);
display.setText(“15411″);
north.add(display, BorderLayout.CENTER);
this.getContentPane().add(north, BorderLayout.SOUTH);
}
public static void main(String [] args)
{
Kalkulator calc = new Kalkulator(“Kalkulator Jefri 2012 65533″);
calc.setSize(350,330);
calc.setResizable(false);
calc.setVisible(true);
}
}



:::Selanjutnya Dibuat :::
Class CalculatorListener
package KalkulatorJefri;
import java.awt.event.*;
import javax.swing.*;
/**
*
* Programmer Jefri www.click-unic.blogspot.com
*/
public class CalculatorListener implements ActionListener{
private JTextField textField;
private String previousValue;
private char operator;
private boolean first;
public CalculatorListener(JTextField tf)
{
textField = tf;
first = true;
}
public void actionPerformed(ActionEvent a)
{
String button = a.getActionCommand();
if(first)
{
textField.setText(“”);
}
if(button.equals(“0″) ||
button.equals(“0″) ||
button.equals(“1″) ||
button.equals(“2″) ||
button.equals(“3″) ||
button.equals(“4″) ||
button.equals(“5″) ||
button.equals(“6″) ||
button.equals(“7″) ||
button.equals(“8″) ||
button.equals(“9″) ||
button.equals(“.”))
{
textField.setText(textField.getText() + button);
first = false;
}
else if(button.equals(“/”) ||
button.equals(“*”) ||
button.equals(“-”) ||
button.equals(“+”))
{
operator = button.charAt(0);
previousValue = textField.getText();
first = true;
}
else if(button.equals(“=”))
{
double current = Double.parseDouble(textField.getText());
double previous = Double.parseDouble(previousValue);
double result = 0.0;
switch(operator)
{
case ‘*’ :
result = current * previous;
break;
case ‘/’ :
result = previous / current;
break;
case ‘+’ :
result = current + previous;
break;
case ‘-’ :
result = previous – current;
}
textField.setText(result + “”);
first = true;
}
}
}