Advertisement
akevintg

Calculator JavaGUI

Nov 29th, 2014
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.24 KB | None | 0 0
  1. import javax.swing.JButton;
  2. import javax.swing.JFrame;
  3. import javax.swing.JPanel;
  4. import javax.swing.JTextField;
  5. import java.awt.Font;
  6. import java.awt.GridLayout;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. import javax.swing.BorderFactory;
  10.  
  11. public class JavaGUI extends JFrame implements ActionListener{
  12.     String nilai1="0",nilai2="0",hasil="";
  13.     Font f=new Font("SansSerif",Font.BOLD, 50);
  14.     JTextField t=new JTextField();
  15.     JButton[] tombol=new JButton[10];
  16.     JButton b=new JButton("C");
  17.     JButton p=new JButton("+");
  18.     JButton m=new JButton("-");
  19.     JButton e=new JButton("=");
  20.     JButton b00=new JButton("00");
  21.     JButton d=new JButton("Del");
  22.     JPanel x= new JPanel(new GridLayout(4, 1, 1, 1));//isinya y,y2,y3,x2
  23.     JPanel y=new JPanel(new GridLayout(1,4,1,1));//baris pertama 789c
  24.     JPanel y2=new JPanel(new GridLayout(1,4,1,1));//baris kedua 456+
  25.     JPanel y3=new JPanel(new GridLayout(1,4,1,1));//baris ketiga 123-
  26.     JPanel x2= new JPanel(new GridLayout(1, 2, 1, 1));//baris ke empat nampung x3&button =
  27.     JPanel x3= new JPanel(new GridLayout(1, 2, 1, 1));//isinya 0 del
  28.     JPanel xyz= new JPanel(new GridLayout(2, 1, 0, 25));//border besar isi t&x
  29.     int flag=1;
  30.    
  31.     JavaGUI(){
  32.         fontadj();
  33.         layOut();
  34.         frame();
  35.         pack();
  36.     }
  37.    
  38.     void fontadj(){
  39.         t.setText("0");
  40.         t.setHorizontalAlignment(JTextField.RIGHT);
  41.         t.setFont(f);
  42.     }
  43.    
  44.     void frame(){
  45.         setLayout(new GridLayout(1,1,0,75));
  46.         setTitle("CALCULATOR JAVA");
  47.         setResizable(false);
  48.         setLocationRelativeTo(null);
  49.         setVisible(true);
  50.         setDefaultCloseOperation(EXIT_ON_CLOSE);
  51.     }
  52.    
  53.     void layOut(){
  54.         for (int i = 0; i < tombol.length; i++) {
  55.             tombol[i]=new JButton(""+i);
  56.             tombol[i].addActionListener(this);
  57.         }
  58.         y.add(tombol[7]);
  59.         y.add(tombol[8]);
  60.         y.add(tombol[9]);
  61.         y.add(b);b.addActionListener(this);
  62.         x.add(y);
  63.         y2.add(tombol[4]);
  64.         y2.add(tombol[5]);
  65.         y2.add(tombol[6]);
  66.         y2.add(p);p.addActionListener(this);
  67.         x.add(y2);
  68.         y3.add(tombol[1]);
  69.         y3.add(tombol[2]);
  70.         y3.add(tombol[3]);
  71.         y3.add(m);m.addActionListener(this);
  72.         x.add(y3);
  73.         x3.add(tombol[0]);
  74.         x3.add(d);d.addActionListener(this);
  75.         x2.add(x3);
  76.         x2.add(e);e.addActionListener(this);
  77.         x.add(x2);
  78.         xyz.add(t);
  79.         xyz.add(x);
  80.         xyz.setBorder(BorderFactory.createEmptyBorder(10, 25, 10, 25));
  81.         add(xyz);
  82.     }
  83.    
  84.     void reset(){
  85.         nilai1="0";
  86.         nilai2="0";
  87.         flag=1;
  88.     }
  89.    
  90.     public void actionPerformed(ActionEvent e) {
  91.         t.setHorizontalAlignment(JTextField.RIGHT);
  92.         System.out.println(e.getActionCommand()+",Flag="+flag);
  93.         if(e.getActionCommand().equals("C")){//pencet c
  94.             t.setText("0");
  95.             reset();
  96.         }
  97.         else if(e.getActionCommand().equals("Del")&&flag==1&&!nilai1.equals("")){//del input1
  98.             int temp;
  99.             System.out.println("masuk");
  100.             if(Integer.parseInt(nilai1)%10!=0)
  101.                 temp=(Integer.parseInt(nilai1)-Integer.parseInt(nilai1)%10)/10;
  102.             else
  103.                 temp=Integer.parseInt(nilai1)/10;
  104.             nilai1=""+temp;
  105.             t.setText(nilai1);
  106.         }
  107.         else if(e.getActionCommand().equals("Del")&&flag!=1&&!nilai2.equals("")){//del input2
  108.             int temp;
  109.             if(Integer.parseInt(nilai2)%10!=0)
  110.                 temp=(Integer.parseInt(nilai2)-Integer.parseInt(nilai2)%10)/10;
  111.             else
  112.                 temp=Integer.parseInt(nilai2)/10;
  113.             nilai2=""+temp;
  114.             t.setText(nilai2);
  115.         }
  116.         else if(e.getActionCommand().equals("+")){//plus pencet
  117.             if(flag==3){
  118.                 int has;
  119.                 has=Integer.parseInt(nilai1)+Integer.parseInt(nilai2);
  120.                 nilai1=""+has;
  121.                 nilai2="0";
  122.                 t.setText(nilai1);
  123.             }
  124.             else if(flag==4){
  125.                 int has;
  126.                 has=Integer.parseInt(nilai1)-Integer.parseInt(nilai2);
  127.                 nilai1=""+has;
  128.                 nilai2="0";
  129.                 t.setText(nilai1);
  130.             }
  131.             flag=3;
  132.         }
  133.         else if(e.getActionCommand().equals("-")){//min pencet
  134.             if(flag==4){
  135.                 int has;
  136.                 has=Integer.parseInt(nilai1)-Integer.parseInt(nilai2);
  137.                 nilai1=""+has;
  138.                 nilai2="0";
  139.                 t.setText(nilai1);
  140.             }
  141.             else if(flag==3){
  142.                 int has;
  143.                 has=Integer.parseInt(nilai1)+Integer.parseInt(nilai2);
  144.                 nilai1=""+has;
  145.                 nilai2="0";
  146.                 t.setText(nilai1);
  147.             }
  148.             flag=4;
  149.            
  150.         }
  151.         else if(flag==1&&!e.getActionCommand().equals("=")&&!e.getActionCommand().equals("Del")){//input nilai1
  152.             System.out.println("Masuk samadengan data1");
  153.             if(nilai1.equals("0"))
  154.                 nilai1="";
  155.             nilai1+=e.getActionCommand();
  156.             t.setText(nilai1);
  157.         }
  158.         else if(e.getActionCommand().equals("=")&&flag==3){//plus
  159.             int has;
  160.             has=Integer.parseInt(nilai1)+Integer.parseInt(nilai2);
  161.             nilai1=""+has;
  162.             nilai2="0";
  163.             t.setText(nilai1);
  164.             flag=1;
  165.         }
  166.         else if(e.getActionCommand().equals("=")&&!nilai1.equals("")){//min
  167.             int has;
  168.             System.out.println("nilai1:"+nilai1);
  169.             has=Integer.parseInt(nilai1)-Integer.parseInt(nilai2);
  170.             nilai1=""+has;
  171.             nilai2="0";
  172.             t.setText(nilai1);
  173.             flag=1;
  174.            
  175.         }
  176.         else if (flag!=1){//input nilai2
  177.             System.out.println("nilai1:"+nilai1);
  178.             System.out.println("masuk nilai2 input");
  179.             if(nilai2.charAt(0)=='0')
  180.                 nilai2="";
  181.             nilai2+=e.getActionCommand();
  182.             t.setText(nilai2);
  183.         }
  184.     }
  185.    
  186.     public static void main(String[] args) {
  187.         new JavaGUI();
  188.     }
  189. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement