Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2014
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.41 KB | None | 0 0
  1. import java.awt.*;
  2. import javax.swing.*;
  3. import java.awt.event.*;
  4. public class Calculator
  5. {
  6. JFrame window;
  7. // stuff for top panel
  8. JPanel topPanel;
  9. JTextField expr,result;
  10. JButton equals;
  11.  
  12. // stuff for bottom panel
  13.  
  14. JPanel bottomPanel,digitsPanel,opsPanel;
  15. JButton[] digits,ops;
  16. JButton clear, clearEntry;
  17. Container content;
  18. Listener listener;
  19. String[] oplabels = { "+", "-", "/", "*" };
  20.  
  21. public Calculator()
  22. {
  23. listener = new Listener(); // our Listener class implements ActionListener
  24. window= new JFrame("GUI Calc");
  25. content=window.getContentPane();
  26. content.setLayout( new GridLayout(2,1) );
  27. topPanel=new JPanel();
  28. topPanel.setLayout( new GridLayout(1,3) );
  29.  
  30. // TOP PANEL WORK
  31.  
  32. expr = new JTextField( );
  33. equals = new JButton("=");
  34. equals.addActionListener( listener );
  35. result = new JTextField( );
  36.  
  37. topPanel.add( expr );
  38. topPanel.add( equals );
  39. topPanel.add( result );
  40.  
  41. // BOTTOM PANEL WORK
  42.  
  43. bottomPanel = new JPanel();
  44. bottomPanel.setLayout( new GridLayout(1,2) );
  45.  
  46. digitsPanel = new JPanel();
  47. digitsPanel.setLayout( new GridLayout(4,3) );
  48.  
  49. opsPanel = new JPanel();
  50. opsPanel.setLayout( new GridLayout(4,1) );
  51.  
  52. digits = new JButton[12];
  53. ops = new JButton[4];
  54.  
  55. for (int i=0 ; i<10 ; i++)
  56. {
  57. digits[i] = new JButton( i+"" );
  58. digits[i].addActionListener(listener);
  59. digitsPanel.add( digits[i] );
  60. }
  61.  
  62. clear = new JButton( "C" );
  63. clearEntry = new JButton( "CE" );
  64. clear.addActionListener(listener);
  65. clearEntry.addActionListener(listener);
  66. digitsPanel.add( clear );
  67. digitsPanel.add( clearEntry);
  68.  
  69.  
  70. for (int i=0 ; i<4 ; i++)
  71. {
  72. ops[i] = new JButton( oplabels[i] ) ;
  73. ops[i].addActionListener(listener);
  74. opsPanel.add( ops[i] );
  75. }
  76.  
  77. bottomPanel.add( digitsPanel );
  78. bottomPanel.add( opsPanel );
  79.  
  80.  
  81. content.add( topPanel);
  82. content.add( bottomPanel);
  83.  
  84. window.setVisible(true);
  85. }
  86. class Listener implements ActionListener
  87. {
  88. public void actionPerformed(ActionEvent e)
  89. {
  90. Component clicked = (Component) e.getSource();
  91. if ( clicked == equals )
  92. {
  93. result.setText( evaluate( expr.getText() ) );
  94. return;
  95. }
  96. for ( int i=0 ; i<10 ; i++)
  97. {
  98. if ( clicked == digits[i] )
  99. {
  100. expr.setText( expr.getText() + i );
  101. return;
  102. }
  103. }
  104. if ( clicked == clear )
  105. {
  106. expr.setText("0");
  107. return;
  108. // do something
  109.  
  110. }
  111. /* if (clicked == clearEntry)
  112. {
  113. expr.setText(expr.getDigits[i]);
  114. }
  115. for (int i=0; i < 10; i++)
  116. {
  117. if (clicked == digits[i])
  118. {
  119. int lastValue = clicked;
  120. if(clicked == clearEntry)
  121. {
  122. expr.setText(expr.getText()-clicked);
  123. return;
  124. }
  125. }
  126. } */
  127.  
  128. for ( int i=0 ; i<4 ; i++ )
  129. {
  130. if(clicked == digits[i])
  131. {
  132. expr.setText(expr.getText() + oplabels[i]);
  133. return;
  134. }
  135. // tack on that operator to the expr string
  136. }
  137.  
  138. }
  139. String evaluate( String exp )
  140. {
  141. return "NOT WRITTEN YET";
  142. }
  143. }
  144. public static void main(String [] args)
  145. {
  146. new Calculator();
  147. }
  148. }
  149.  
  150. Component last_clicked;
  151.  
  152. last_clicked=null;
  153.  
  154. last_clicked=clicked;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement