关于科学型Java计数器的知识

开发 后端
本文讲述了科学型Java计数器的相关代码,包括:设计面板中的单位、构造函数、设计整个面板、将所有行为与监听绑定、设置各个按钮行为、输入中假如有操作非法,比如按下两次´+´,捕捉异常及主函数等几个部分。

科学型Java计数器:

  1. import Java.awt.*;  
  2. import java.lang.*;  
  3. import javax.swing.*;  
  4. import javax.swing.event.*;  
  5. import java.awt.event.*;  
  6. import java.text.DecimalFormat;  
  7. public class Calculator  
  8. implements ActionListener  //导入动作监听接口 

设计面板中的单位:

  1. JFrame frame;  
  2. JTextField textAnswer;  
  3. JPanel panel, panel1, panel2, panel3;  
  4. JMenuBar mainMenu;  
  5. JTextField textMemory;  
  6. JLabel labelMemSpace; //labelMemSpace单纯做摆设,控制面板的外形  
  7. JButton buttonBk, buttonCe, buttonC;  
  8. JButton button[];  
  9. JButton buttonMC, buttonMR, buttonMS, buttonMAdd;  
  10. JButton buttonDot, buttonAddAndSub, buttonAdd, buttonSub, buttonMul,  
  11. buttonDiv, buttonMod;  
  12. JButton buttonSqrt, buttonDao, buttonEqual;  
  13. JMenu editMenu, viewMenu, helpMenu;  
  14. JMenuItem copyItem, pasteItem, tItem, sItem, numberGroup, topHelp, aboutCal;  
  15. DecimalFormat df; //设置数据输出精度  
  16. boolean clickable; //控制当前能否按键  
  17. double memoryd; //使用内存中存储的数字  
  18. int memoryi;  
  19. double vard, answerd; //用来保存double型数据的中间值(vard)和最后结果(answerd)  
  20. short key = -1, prekey = -1//key用来保存当前进行何种运算,prekey用来保存前次进行何种运算  
  21. String copy; //做复制用  
  22. JTextArea help; //帮助  
  23. JScrollPane scrollHelp;  

构造函数:

  1. public Calculator() {  
  2. clickable = true;  
  3. answerd = 0;  
  4. frame = new JFrame("计算器");  
  5. df = new DecimalFormat("0.##############"); //设置数据输出精度(对于double型值)  
  6. textAnswer = new JTextField(15);  
  7. textAnswer.setText("");  
  8. textAnswer.setEditable(false);  
  9. textAnswer.setBackground(new Color(255255255));  
  10. panel = new JPanel();  
  11. frame.getContentPane().add(panel);  
  12. panel1 = new JPanel();  
  13. panel2 = new JPanel();  
  14. panel.setLayout(new BorderLayout()); 

设计整个面板:

  1. mainMenu = new JMenuBar();  
  2. editMenu = new JMenu("编辑(E)");  
  3. viewMenu = new JMenu("查看(V)");  
  4. helpMenu = new JMenu("帮助(H)");  
  5. copyItem = new JMenuItem(" 复制(C) Ctrl+C");  
  6. copyItem.addActionListener(this);  
  7. pasteItem = new JMenuItem(" 粘贴(V) Ctrl+V");  
  8. pasteItem.addActionListener(this);  
  9. editMenu.add(copyItem);  
  10. editMenu.add(pasteItem);  
  11. tItem = new JMenuItem("●标准型(T)");  
  12. tItem.addActionListener(this);  
  13. sItem = new JMenuItem(" 科学型(S)");  
  14. sItem.addActionListener(this);  
  15. numberGroup = new JMenuItem(" 数字分组(I)");  
  16. numberGroup.addActionListener(this);  
  17. viewMenu.add(tItem);  
  18. viewMenu.add(sItem);  
  19. viewMenu.add(numberGroup);  
  20. topHelp = new JMenuItem(" 帮助主题(H)");  
  21. topHelp.addActionListener(this);  
  22. help = new JTextArea(520);  
  23. scrollHelp = new JScrollPane(help);  
  24. help.setEditable(false);  
  25. help.append("执行简单计算 ");  
  26. help.append("1. 键入计算的第一个数字。 ");  
  27. help.append("2. 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。 ");  
  28. help.append("3. 键入计算的下一个数字。 ");  
  29. help.append("4. 输入所有剩余的运算符和数字。 ");  
  30. help.append("5. 单击“=”。 ");  
  31. aboutCal = new JMenuItem(" 关于计算器(A)");  
  32. aboutCal.addActionListener(this);  
  33. helpMenu.add(topHelp);  
  34. helpMenu.add(aboutCal);  
  35. mainMenu.add(editMenu);  
  36. mainMenu.add(viewMenu);  
  37. mainMenu.add(helpMenu);  
  38. panel.add(mainMenu, BorderLayout.NORTH);  
  39. panel.add(textAnswer, BorderLayout.CENTER);  
  40. panel.add(panel1, BorderLayout.SOUTH);  
  41. panel1.setLayout(new BorderLayout());  
  42. textMemory = new JTextField(3);  
  43. textMemory.setEditable(false);  
  44. textMemory.setBackground(new Color(217217217));  
  45. labelMemSpace = new JLabel(" ");  
  46. buttonBk = new JButton("Backspace");  
  47. buttonBk.setForeground(new Color(25500));  
  48. buttonCe = new JButton("CE");  
  49. buttonCe.setForeground(new Color(25500));  
  50. buttonC = new JButton("C");  
  51. buttonC.setForeground(new Color(25500));  
  52. buttonBk.addActionListener(this);  
  53. buttonCe.addActionListener(this);  
  54. buttonC.addActionListener(this);  
  55. panel1.add(panel2, BorderLayout.NORTH);  
  56. panel2.setLayout(new FlowLayout(FlowLayout.RIGHT));  
  57. panel2.add(textMemory);  
  58. panel2.add(labelMemSpace);  
  59. panel2.add(buttonBk);  
  60. panel2.add(buttonCe);  
  61. panel2.add(buttonC);  
  62. panel3 = new JPanel();  
  63. panel1.add(panel3, BorderLayout.CENTER);  
  64. button = new JButton[10];  
  65. for (int i = 0; i < button.length; i++) {  
  66. button[i] = new JButton(Integer.toString(i));  
  67. button[i].setForeground(new Color(00255));  
  68. }  
  69. buttonMC = new JButton("MC");  
  70. buttonMC.setForeground(new Color(25500));  
  71. buttonMR = new JButton("MR");  
  72. buttonMR.setForeground(new Color(25500));  
  73. buttonMS = new JButton("MS");  
  74. buttonMS.setForeground(new Color(25500));  
  75. buttonMAdd = new JButton("M+");  
  76. buttonMAdd.setForeground(new Color(25500));  
  77. buttonDot = new JButton(".");  
  78. buttonDot.setForeground(new Color(00255));  
  79. buttonAddAndSub = new JButton("+/-");  
  80. buttonAddAndSub.setForeground(new Color(00255));  
  81. buttonAdd = new JButton("+");  
  82. buttonAdd.setForeground(new Color(25500));  
  83. buttonSub = new JButton("-");  
  84. buttonSub.setForeground(new Color(25500));  
  85. buttonMul = new JButton("*");  
  86. buttonMul.setForeground(new Color(25500));  
  87. buttonDiv = new JButton("/");  
  88. buttonDiv.setForeground(new Color(25500));  
  89. buttonMod = new JButton("%");  
  90. buttonMod.setForeground(new Color(00255));  
  91. buttonSqrt = new JButton("sqrt");  
  92. buttonSqrt.setForeground(new Color(00255));  
  93. buttonDao = new JButton("1/x");  
  94. buttonDao.setForeground(new Color(00255));  
  95. buttonEqual = new JButton("=");  
  96. buttonEqual.setForeground(new Color(25500)); 

将所有行为与监听绑定:

  1. panel3.setLayout(new GridLayout(46));  
  2. panel3.add(buttonMC);  
  3. buttonMC.addActionListener(this);  
  4. panel3.add(button[7]);  
  5. button[7].addActionListener(this);  
  6. panel3.add(button[8]);  
  7. button[8].addActionListener(this);  
  8. panel3.add(button[9]);  
  9. button[9].addActionListener(this);  
  10. panel3.add(buttonDiv);  
  11. buttonDiv.addActionListener(this);  
  12. panel3.add(buttonSqrt);  
  13. buttonSqrt.addActionListener(this);  
  14. panel3.add(buttonMR);  
  15. buttonMR.addActionListener(this);  
  16. panel3.add(button[4]);  
  17. button[4].addActionListener(this);  
  18. panel3.add(button[5]);  
  19. button[5].addActionListener(this);  
  20. panel3.add(button[6]);  
  21. button[6].addActionListener(this);  
  22. panel3.add(buttonMul);  
  23. buttonMul.addActionListener(this);  
  24. panel3.add(buttonMod);  
  25. buttonMod.addActionListener(this);  
  26. panel3.add(buttonMS);  
  27. buttonMS.addActionListener(this);  
  28. panel3.add(button[1]);  
  29. button[1].addActionListener(this);  
  30. panel3.add(button[2]);  
  31. button[2].addActionListener(this);  
  32. panel3.add(button[3]);  
  33. button[3].addActionListener(this);  
  34. panel3.add(buttonSub);  
  35. buttonSub.addActionListener(this);  
  36. panel3.add(buttonDao);  
  37. buttonDao.addActionListener(this);  
  38. panel3.add(buttonMAdd);  
  39. buttonMAdd.addActionListener(this);  
  40. panel3.add(button[0]);  
  41. button[0].addActionListener(this);  
  42. panel3.add(buttonAddAndSub);  
  43. buttonAddAndSub.addActionListener(this);  
  44. panel3.add(buttonDot);  
  45. buttonDot.addActionListener(this);  
  46. panel3.add(buttonAdd);  
  47. buttonAdd.addActionListener(this);  
  48. panel3.add(buttonEqual);  
  49. buttonEqual.addActionListener(this);  
  50. frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);  
  51. frame.pack();  
  52. frame.show();  

设置各个按钮行为:

  1. public void actionPerformed(ActionEvent event) {  
  2. boolean sign = false//判定是否是double型数参与运算,是为true,不是为false  
  3. Object temp = event.getSource();  
  4. try {  
  5. //假如按下数据按钮,将按下的按钮代表的数据插入的当前文本框字符串之后  
  6. for (int i = 0; i <= 9; i++)  
  7. if (temp == button[i] && clickable == true)  
  8. textAnswer.setText(textAnswer.getText() + Integer.toString(i));  
  9. //按下´.´按钮时,判定当前文本框内字符串中含不含´.´,假如已含,则不答应再插入´.´  
  10. if (temp == buttonDot && clickable == true) {  
  11. boolean isDot = false;  
  12. if (textAnswer.getText().length() == 0)  
  13. isDot = true;  
  14. for (int i = 0; i < textAnswer.getText().length(); i++)  
  15. if (´.´ == textAnswer.getText().charAt(i)) {  
  16. isDot = true;  
  17. break;  
  18. }  
  19. if (isDot == false)  
  20. textAnswer.setText(textAnswer.getText() + ".");  
  21. }  
  22. if ( (temp == buttonAdd temp == buttonSub temp == buttonMul   
  23. temp == buttonDiv) && clickable == true) {  
  24. //´+´操作  
  25. if (temp == buttonAdd) {  
  26. switch (prekey) {  
  27. case 0:  
  28. answerd += Double.parseDouble(textAnswer.getText());  
  29. break;  
  30. case 1:  
  31. answerd -= Double.parseDouble(textAnswer.getText());  
  32. break;  
  33. case 2:  
  34. answerd *= Double.parseDouble(textAnswer.getText());  
  35. break;  
  36. case 3:  
  37. if (Double.parseDouble(textAnswer.getText()) == 0) {  
  38. textAnswer.setText("除数不能为零");  
  39. clickable = false;  
  40. }  
  41. else 
  42. answerd /= Double.parseDouble(textAnswer.getText());  
  43. break;  
  44. default:  
  45. answerd = Double.parseDouble(textAnswer.getText());  
  46. }  
  47. textAnswer.setText("");  
  48. prekey = key = 0;  
  49. }  
  50. //´-´操作  
  51. if (temp == buttonSub) {  
  52. switch (prekey) {  
  53. case 0:  
  54. answerd += Double.parseDouble(textAnswer.getText());  
  55. break;  
  56. case 1:  
  57. answerd -= Double.parseDouble(textAnswer.getText());  
  58. break;  
  59. case 2:  
  60. answerd *= Double.parseDouble(textAnswer.getText());  
  61. break;  
  62. case 3:  
  63. if (Double.parseDouble(textAnswer.getText()) == 0) {  
  64. textAnswer.setText("除数不能为零");  
  65. clickable = false;  
  66. }  
  67. else 
  68. answerd /= Double.parseDouble(textAnswer.getText());  
  69. break;  
  70. default:  
  71. answerd = Double.parseDouble(textAnswer.getText());  
  72. }  
  73. textAnswer.setText("");  
  74. prekey = key = 1;  
  75. }  
  76. //´*´操作  
  77. if (temp == buttonMul) {  
  78. switch (prekey) {  
  79. case 0:  
  80. answerd += Double.parseDouble(textAnswer.getText());  
  81. break;  
  82. case 1:  
  83. answerd -= Double.parseDouble(textAnswer.getText());  
  84. break;  
  85. case 2:  
  86. answerd *= Double.parseDouble(textAnswer.getText());  
  87. break;  
  88. case 3:  
  89. if (Double.parseDouble(textAnswer.getText()) == 0) {  
  90. textAnswer.setText("除数不能为零");  
  91. clickable = false;  
  92. }  
  93. else 
  94. answerd /= Double.parseDouble(textAnswer.getText());  
  95. break;  
  96. default:  
  97. answerd = Double.parseDouble(textAnswer.getText());  
  98. }  
  99. textAnswer.setText("");  
  100. prekey = key = 2;  
  101. }  
  102. //´/´操作  
  103. if (temp == buttonDiv) {  
  104. switch (prekey) {  
  105. case 0:  
  106. answerd += Double.parseDouble(textAnswer.getText());  
  107. break;  
  108. case 1:  
  109. answerd -= Double.parseDouble(textAnswer.getText());  
  110. break;  
  111. case 2:  
  112. answerd *= Double.parseDouble(textAnswer.getText());  
  113. break;  
  114. case 3:  
  115. if (Double.parseDouble(textAnswer.getText()) == 0) {  
  116. textAnswer.setText("除数不能为零");  
  117. clickable = false;  
  118. }  
  119. else 
  120. answerd /= Double.parseDouble(textAnswer.getText());  
  121. break;  
  122. default:  
  123. answerd = Double.parseDouble(textAnswer.getText());  
  124. }  
  125. textAnswer.setText("");  
  126. prekey = key = 3;  
  127. }  
  128. }  
  129. //´=´操作  
  130. if (temp == buttonEqual && clickable == true) {  
  131. //假如连续按´=´,则进行连续运算  
  132. if (prekey == 5) {  
  133. if (key == 0) {  
  134. answerd += vard;  
  135. textAnswer.setText(df.format(answerd));  
  136. }  
  137. if (key == 1) {  
  138. answerd -= vard;  
  139. textAnswer.setText(df.format(answerd));  
  140. }  
  141. if (key == 2) {  
  142. answerd *= vard;  
  143. textAnswer.setText(df.format(answerd));  
  144. }  
  145. if (key == 3) {  
  146. if (Double.parseDouble(textAnswer.getText()) == 0) {  
  147. textAnswer.setText("除数不能为零");  
  148. clickable = false;  
  149. }  
  150. else {  
  151. answerd /= vard;  
  152. textAnswer.setText(df.format(answerd));  
  153. }  
  154. }  
  155. }  
  156. else {  
  157. vard = Double.parseDouble(textAnswer.getText());  
  158. if (key == 0) {  
  159. prekey = -1;  
  160. answerd += Double.parseDouble(textAnswer.getText());  
  161. textAnswer.setText(df.format(answerd));  
  162. }  
  163. if (key == 1) {  
  164. prekey = -1;  
  165. answerd -= Double.parseDouble(textAnswer.getText());  
  166. textAnswer.setText(df.format(answerd));  
  167. }  
  168. if (key == 2) {  
  169. prekey = -1;  
  170. answerd *= Double.parseDouble(textAnswer.getText());  
  171. textAnswer.setText(df.format(answerd));  
  172. }  
  173. if (key == 3) {  
  174. prekey = -1;  
  175. if (Double.parseDouble(textAnswer.getText()) == 0) {  
  176. textAnswer.setText("除数不能为零");  
  177. clickable = false;  
  178. }  
  179. else {  
  180. answerd /= Double.parseDouble(textAnswer.getText());  
  181. textAnswer.setText(df.format(answerd));  
  182. }  
  183. }  
  184. }  
  185. prekey = 5;  
  186. }  
  187. //´%´操作,对第二个操作数除以100  
  188. if (temp == buttonMod && clickable == true) {  
  189. if (answerd == 0) {  
  190. String s = textAnswer.getText();  
  191. textAnswer.setText(s);  
  192. }  
  193. else {  
  194. boolean isDot = false;  
  195. for (int i = 0; i < textAnswer.getText().length(); i++)  
  196. if (´.´ == textAnswer.getText().charAt(i)) {  
  197. isDot = true;  
  198. break;  
  199. }  
  200. //假如是double数,除100  
  201. if (isDot == true) {  
  202. double dtemp = Double.parseDouble(textAnswer.getText());  
  203. dtemp = dtemp / 100.0;  
  204. textAnswer.setText(Double.toString(dtemp));  
  205. }  
  206. else {  
  207. //假如是int数但能被100整除,则去掉末尾两个零  
  208. if (Integer.parseInt(textAnswer.getText()) % 100 == 0) {  
  209. int itemp = Integer.parseInt(textAnswer.getText());  
  210. itemp /= 100;  
  211. textAnswer.setText(Integer.toString(itemp));  
  212. }  
  213. //假如是int数,但不能被100整除,则按double数处理  
  214. else {  
  215. double dtemp = Double.parseDouble(textAnswer.getText());  
  216. dtemp = dtemp / 100.0;  
  217. textAnswer.setText(Double.toString(dtemp));  
  218. }  
  219. }  
  220. }  
  221. }  
  222. //开根号运算  
  223. if (temp == buttonSqrt && clickable == true) {  
  224. String s = textAnswer.getText();  
  225. if (s.charAt(0) == ´-´) {  
  226. textAnswer.setText("负数不能开根号");  
  227. clickable = false;  
  228. }  
  229. else 
  230. textAnswer.setText(Double.toString(java.lang.Math.sqrt(Double.  
  231. parseDouble(textAnswer.getText()))));  
  232. }  
  233. //倒数运算  
  234. if (temp == buttonDao && clickable == true) {  
  235. if (textAnswer.getText().charAt(0) == ´0´ &&  
  236. textAnswer.getText().length() == 1) {  
  237. textAnswer.setText("零不能求倒数");  
  238. clickable = false;  
  239. }  
  240. else {  
  241. boolean isDec = true;  
  242. int i, j, k;  
  243. String s = Double.toString(1 / Double.parseDouble(textAnswer.getText()));  
  244. for (i = 0; i < s.length(); i++)  
  245. if (s.charAt(i) == ´.´)  
  246. break;  
  247. for (j = i + 1; j < s.length(); j++)  
  248. if (s.charAt(j) != ´0´) {  
  249. isDec = false;  
  250. break;  
  251. }  
  252. if (isDec == true) {  
  253. String stemp = "";  
  254. for (k = 0; k < i; k++)  
  255. stemp += s.charAt(k);  
  256. textAnswer.setText(stemp);  
  257. }  
  258. else 
  259. textAnswer.setText(s);  
  260. }  
  261. }  
  262. //按下´+/-´按钮时处理  
  263. if (temp == buttonAddAndSub && clickable == true) {  
  264. boolean isNumber = true;  
  265. String s = textAnswer.getText();  
  266. for (int i = 0; i < s.length(); i++)  
  267. if (! (s.charAt(i) >= ´0´ && s.charAt(i) <= ´9´ s.charAt(i) == ´.´   
  268. s.charAt(i) == ´-´)) {  
  269. isNumber = false;  
  270. break;  
  271. }  
  272. if (isNumber == true) {  
  273. //假如当前字符串首字母有´-´号,代表现在是个负数,再按下时,则将首符号去掉  
  274. if (s.charAt(0) == ´-´) {  
  275. textAnswer.setText("");  
  276. for (int i = 1; i < s.length(); i++) {  
  277. char a = s.charAt(i);  
  278. textAnswer.setText(textAnswer.getText() + a);  
  279. }  
  280. }  
  281. //假如当前字符串第一个字符不是符号,则添加一个符号在首字母处  
  282. else 
  283. textAnswer.setText(´-´ + s);  
  284. }  
  285. }  
  286. //计算器有关内存操作  
  287. //´MC´的操作,将内存清0  
  288. if (temp == buttonMC && clickable == true) {  
  289. memoryd = memoryi = 0;  
  290. textMemory.setText("");  
  291. }  
  292. //´MS´的操作,将当前文本框内容保存入内存,显示´M´  
  293. if (temp == buttonMS && clickable == true) {  
  294. boolean isDot = false;  
  295. textMemory.setText(" M");  
  296. for (int i = 0; i < textAnswer.getText().length(); i++)  
  297. if (´.´ == textAnswer.getText().charAt(i)) {  
  298. isDot = true;  
  299. break;  
  300. }  
  301. //假如是double,则存入memoryd(double存储器)  
  302. if (isDot == true) {  
  303. memoryd = Double.parseDouble(textAnswer.getText());  
  304. memoryi = 0//保证存储器中存放最新的值  
  305. }  
  306. //假如是int,则存入memoryi(int存储器)  
  307. else {  
  308. memoryi = Integer.parseInt(textAnswer.getText());  
  309. memoryd = 0//保证存储器中存放最新的值  
  310. }  
  311. }  
  312. //´MR´的操作,将存储器中的信息输出  
  313. if (temp == buttonMR && clickable == true) {  
  314. if (memoryd != 0)  
  315. textAnswer.setText(Double.toString(memoryd));  
  316. if (memoryi != 0)  
  317. textAnswer.setText(Integer.toString(memoryi));  
  318. }  
  319. //´M+´的功能,将当前文本框里的数据和存储器中数据相加后,再存入存储器  
  320. if (temp == buttonMAdd && clickable == true) {  
  321. boolean isDot = false;  
  322. for (int i = 0; i < textAnswer.getText().length(); i++)  
  323. if (´.´ == textAnswer.getText().charAt(i)) {  
  324. isDot = true;  
  325. break;  
  326. }  
  327. if (memoryi != 0) { //存储中是一个int型数  
  328. if (isDot == false//被加数是一个int型数  
  329. memoryi += Integer.parseInt(textAnswer.getText());  
  330. else { //被加数是一个double型数,则将int存储器中数传入double存储器与当前数相加,int存储器清零  
  331. memoryd = memoryi + Double.parseDouble(textAnswer.getText());  
  332. memoryi = 0;  
  333. }  
  334. }  
  335. else 
  336. memoryd += Double.parseDouble(textAnswer.getText());  
  337. }  
  338. //按下´Backspace´键,利用循环将当前字符串中的最后一个字母删除  
  339. if (temp == buttonBk && clickable == true) {  
  340. String s = textAnswer.getText();  
  341. textAnswer.setText("");  
  342. for (int i = 0; i < s.length() - 1; i++) {  
  343. char a = s.charAt(i);  
  344. textAnswer.setText(textAnswer.getText() + a);  
  345. }  
  346. }  
  347. //按下´CE´按钮,将当前文本框内数据清除  
  348. if (temp == buttonCe) {  
  349. textAnswer.setText("");  
  350. clickable = true;  
  351. }  
  352. //按下´C´按钮,文本框内数据清除,同时var,answer清0  
  353. if (temp == buttonC) {  
  354. vard = answerd = 0;  
  355. textAnswer.setText("");  
  356. clickable = true;  
  357. }  
  358. //按下´复制´菜单栏  
  359. if (temp == copyItem) {  
  360. copy = textAnswer.getText();  
  361. }  
  362. //按下´粘贴´菜单栏  
  363. if (temp == pasteItem) {  
  364. textAnswer.setText(copy);  
  365. }  
  366. if (temp == sItem) {  
  367. JOptionPane.showMessageDialog(panel, "当前是标准型计算器,科学型计算器有待更新。");  
  368. }  
  369. //按下´帮助主题´菜单栏  
  370. if (temp == topHelp) {  
  371. JOptionPane.showMessageDialog(panel, scrollHelp);  
  372. }  
  373. //按下´数字分组´菜单栏  
  374. if (temp == numberGroup) {  
  375. if (numberGroup.getText().compareTo(" 数字分组(I)") == 0)  
  376. numberGroup.setText("√数字分组(I)");  
  377. else 
  378. numberGroup.setText(" 数字分组(I)");  
  379. }  
  380. //按下´关于´菜单栏  
  381. if (temp == aboutCal) {  
  382. JOptionPane.showMessageDialog(panel, "计算器1.00版开发者:楼竞");  
  383. }  

输入中假如有操作非法,比如按下两次´+´,捕捉异常:

  1. catch (Exception e) {  
  2. textAnswer.setText("操作非法");  
  3. clickable = false;  
  4. }  

主函数:

  1. public static void main(String args[]) {  
  2. new Calculator();  

 

【编辑推荐】

  1. 20个开发人员非常有用的Java功能代码
  2. 走进Java 7中的模块系统
  3. JavaFX 1.2 已经发布 主要新功能一览
  4. 2009年十大Java技术解决方案
  5. 2008最值得学习的五种JAVA技术
责任编辑:仲衡 来源: 花*羽*语*鱼个人博客
相关推荐

2023-08-08 08:01:22

微服务架构服务

2009-11-06 16:59:26

WCF性能计数器

2023-07-28 08:15:27

PC程序计数器

2009-11-25 15:07:39

PHP添加计数器

2009-10-29 11:47:15

ADO.NET计数器b

2010-02-22 16:34:17

WCF性能计数器

2009-12-01 15:01:07

PHP生成访问计数器

2009-12-22 13:16:53

WCF性能计数器

2022-04-08 07:22:15

分布式计数器系统设计

2009-12-22 13:25:58

WCF性能计数器内存

2022-08-29 19:51:58

CSS计数器

2024-03-04 08:53:50

海量数据计数器存储

2009-11-30 18:08:30

PHP制作动态计数器

2010-07-16 14:37:53

SQL Server

2010-01-04 16:02:32

ADO.NET计数器

2024-02-07 12:32:00

重构技巧PythonCounter

2009-04-15 10:33:35

SQL Server 性能计数器错误

2010-06-12 17:16:46

MySQL数据库

2023-09-26 08:39:28

限流方式滑动窗口计数器

2010-01-18 11:03:17

VB.NET网页计数器
点赞
收藏

51CTO技术栈公众号