fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7.  
  8. import java.awt.*;
  9. import javax.swing.*;
  10. import java.awt.event.*;
  11.  
  12. public class calculate extends WindowAdapter
  13. {
  14. private JTextField Jtext=new JTextField("0.");
  15. private JFrame f=new JFrame("简单计算器");
  16. private String x="";
  17. private String y="";
  18. private String cal="";
  19. private boolean flag1=true;
  20. private boolean flag2=false;
  21.  
  22. public void init() //初始化
  23. {
  24. String[] buttonValue=new String[]{"1","2","3","+","C","4","5","6","-","退格","7","8","9","*",
  25. "1/x","0","+/-",".","/","="};
  26. Container contain=f.getContentPane();
  27. JPanel JPan=new JPanel();
  28. JButton[] Jb=new JButton[20];
  29. contain.setLayout(new BorderLayout()); //采用4行5列的网格布局
  30. JPan.setLayout(new GridLayout(4,5));
  31. Jtext.setHorizontalAlignment(JTextField.RIGHT);
  32. contain.add(Jtext,"North");
  33. contain.add(JPan);
  34. A num=new A(); //数据
  35. Operation op=new Operation(); //运算符
  36. Clear cl=new Clear(); //清零
  37. CountDown count_d=new CountDown(); //倒数
  38. Strains stra=new Strains(); //相反数
  39. Result re=new Result(); //结果
  40. BackSpace back=new BackSpace(); //退格
  41.  
  42. for(int i=0;i<Jb.length;i++) //利用for循环添加按钮
  43. {
  44. Jb[i]=new JButton(buttonValue[i]);
  45. JPan.add(Jb[i]);
  46. if(i==3||i==8||i==13||i==18)
  47. Jb[i].addActionListener(op);
  48. if(i==0||i==1||i==2||i==5||i==6||i==7||i==10||i==11||i==12||i==15||i==17)
  49. Jb[i].addActionListener(num);
  50. if(i==3||i==4||i==8||i==9||((i>12)&&(i<=19)&&(i!=15)))
  51. Jb[i].setForeground(new Color(255,0,0));
  52. else
  53. Jb[i].setForeground(new Color(0,0,255)); //设置按钮颜色
  54. }
  55. Jb[4].addActionListener(cl);
  56. Jb[9].addActionListener(back);
  57. Jb[14].addActionListener(count_d);
  58. Jb[16].addActionListener(stra);
  59. Jb[19].addActionListener(re);
  60. f.setSize(320,240);
  61. f.setVisible(true);
  62. f.addWindowListener( //采用匿名类实现窗口的正常关闭
  63. {
  64. public void windowClosing(WindowEvent e)
  65. {System.exit(0);}
  66. });
  67. }
  68.  
  69. class A implements ActionListener //输入数据
  70. {
  71. public void actionPerformed(ActionEvent e)
  72. {
  73. String a=Jtext.getText();
  74. String s=e.getActionCommand();
  75. if(a.equals("0.")||a.equals("+")||a.equals("-")||a.equals("*")||a.equals("/"))
  76. Jtext.setText(s);
  77. else{
  78. if(flag2)
  79. {Jtext.setText(s);
  80. flag2=false;}
  81. else
  82. Jtext.setText(a+s);
  83. }
  84. }
  85. }
  86.  
  87. class Operation implements ActionListener
  88. {
  89. public void actionPerformed(ActionEvent e)
  90. {
  91. cal=e.getActionCommand();
  92. if(flag1==true)
  93. x=Jtext.getText();
  94. Jtext.setText(cal);
  95. flag1=false;
  96. }
  97. }
  98.  
  99. class Clear implements ActionListener //清零功能
  100. {
  101. public void actionPerformed(ActionEvent e)
  102. {
  103. Jtext.setText("0.");
  104. }
  105. }
  106.  
  107. class CountDown implements ActionListener //求倒数类
  108. {
  109. public void actionPerformed(ActionEvent e) 
  110. {
  111. String s=e.getActionCommand();
  112. String s1 = Jtext.getText();
  113. if(s.equals("1/x"))
  114. s1=new String(""+1/Double.parseDouble(s1));
  115. Jtext.setText(s1);
  116. }
  117. }
  118. class Strain implements ActionListener //求相反数类
  119. {
  120. public void actionPerformed(ActionEvent e)
  121. {
  122. String s=e.getActionCommand();
  123. String s1=Jtext.getText();
  124. if(s.equals("+/-"))
  125. s1=new String(""+(0-Double.parseDouble(s1)));
  126. Jtext.setText(s1);
  127. }
  128. }
  129.  
  130. class BackSpace implements ActionListener //退格功能
  131. {
  132. public void actionPerformed(ActionEvent e)
  133. {
  134. String s=e.getActionCommand();
  135. String s1=Jtext.getText();
  136. if(s.equals("退格"))
  137. s1=new String(s1.substring(0,s1.length()-1));
  138. Jtext.setText(s1);
  139. }
  140. }
  141.  
  142. class Result implements ActionListener //计算并显示结果
  143. {
  144. public void actionPerformed(ActionEvent e)
  145. {
  146. double num1;
  147. num1=Double.parseDouble(x);
  148. y=Jtext.getText();
  149. double num2;
  150. num2=Double.parseDouble(y);
  151. double result=0;
  152. if(num2!=0)
  153. {
  154. if(cal.equals("+"))
  155. result=num1+num2;
  156. if(cal.equals("-"))
  157. result=num1-num2;
  158. if(cal.equals("*"))
  159. result=num1*num2;
  160. String s1=Double.toString(result);
  161. Jtext.setText(s1);
  162. }
  163. if(cal.equals("/"))
  164. {
  165. if(num2==0)
  166. Jtext.setText("除数不能为0");
  167. else
  168. {
  169. result=num1/num2;
  170. String s1=Double.toString(result);
  171. Jtext.setText(s1);
  172. }
  173. }
  174. flag1=true;
  175. flag2=true;
  176. }
  177. }
  178.  
  179. public static void main(String[] args) //main方法
  180. {
  181. calculate count=new calculate();
  182. count.init();
  183. }
  184.  
  185. }
  186.  
  187.  
  188.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:110: error: illegal character: '\u00a0'
		public void actionPerformed(ActionEvent?e)?
		                                       ^
Main.java:110: error: ';' expected
		public void actionPerformed(ActionEvent?e)?
		                                        ^
Main.java:110: error: illegal start of type
		public void actionPerformed(ActionEvent?e)?
		                                         ^
Main.java:110: error: illegal character: '\u00a0'
		public void actionPerformed(ActionEvent?e)?
		                                          ^
Main.java:110: error: ';' expected
		public void actionPerformed(ActionEvent?e)?
		                                           ^
Main.java:114: error: illegal start of type
			if(s.equals("1/x"))
			^
Main.java:114: error: <identifier> expected
			if(s.equals("1/x"))
			           ^
Main.java:114: error: ';' expected
			if(s.equals("1/x"))
			            ^
Main.java:114: error: illegal start of type
			if(s.equals("1/x"))
			                 ^
Main.java:114: error: <identifier> expected
			if(s.equals("1/x"))
			                  ^
Main.java:114: error: ';' expected
			if(s.equals("1/x"))
			                   ^
Main.java:115: error: illegal start of type
				s1=new String(""+1/Double.parseDouble(s1));
				  ^
Main.java:115: error: <identifier> expected
				s1=new String(""+1/Double.parseDouble(s1));
				   ^
Main.java:115: error: ';' expected
				s1=new String(""+1/Double.parseDouble(s1));
				      ^
Main.java:115: error: illegal start of type
				s1=new String(""+1/Double.parseDouble(s1));
				             ^
Main.java:115: error: <identifier> expected
				s1=new String(""+1/Double.parseDouble(s1));
				              ^
Main.java:115: error: ';' expected
				s1=new String(""+1/Double.parseDouble(s1));
				                ^
Main.java:115: error: illegal start of type
				s1=new String(""+1/Double.parseDouble(s1));
				                 ^
Main.java:115: error: <identifier> expected
				s1=new String(""+1/Double.parseDouble(s1));
				                  ^
Main.java:115: error: ';' expected
				s1=new String(""+1/Double.parseDouble(s1));
				                   ^
Main.java:115: error: illegal start of type
				s1=new String(""+1/Double.parseDouble(s1));
				                         ^
Main.java:115: error: <identifier> expected
				s1=new String(""+1/Double.parseDouble(s1));
				                                        ^
Main.java:115: error: ';' expected
				s1=new String(""+1/Double.parseDouble(s1));
				                                         ^
Main.java:116: error: <identifier> expected
			Jtext.setText(s1);
			             ^
Main.java:116: error: <identifier> expected
			Jtext.setText(s1);
			                ^
Main.java:180: error: class, interface, or enum expected
    public static void main(String[] args) //main??
                  ^
Main.java:183: error: class, interface, or enum expected
    	count.init();
    	^
Main.java:184: error: class, interface, or enum expected
    }
    ^
28 errors
stdout
Standard output is empty