自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一則運算Java運算器相關代碼

開發(fā) 后端
本文給出了一則Java運算器設置和實現(xiàn)各項功能的代碼。

一則運算Java運算器:

構造者:

  1. import javax.swing.*;  
  2. import java.awt.*;  
  3. import java.awt.event.*;  
  4.  
  5. public class Calculator3 extends JFrame implements ActionListener {  
  6. private boolean dotExist, operated, equaled; // 幫助運算的布爾變量  
  7. private double storedNumber; // 目前的結果  
  8. private char lastOperator; // 表示上一運算符  
  9. private JTextField operation; // 結果欄  
  10. private JButton dot, plus, minus, multi, div, sqrt, equal, changePN, clear; // 運算符  
  11. private JButton[] numbers; // 數(shù)字  
  12.  

初始化變量:

  1. dotExist = false// 表示當前的數(shù)是否有小數(shù)點  
  2. operated = false// 表示任意運算符是否被按下  
  3. equaled = false// 表示等號是否被按下  
  4. storedNumber = 0;  
  5. lastOperator = '?';  

初始化窗口變量:

  1. operation = new JTextField("0");  
  2. operation.setEditable(false);  
  3. numbers = new JButton[10];  
  4. for (int i = 0; i < 10; i++)  
  5. numbers[i] = new JButton("" + i);  
  6. dot = new JButton(".");  
  7. plus = new JButton("+");  
  8. minus = new JButton("-");  
  9. multi = new JButton("*");  
  10. div = new JButton("/");  
  11. sqrt = new JButton("√");  
  12. equal = new JButton("=");  
  13. changePN = new JButton("±");  
  14. clear = new JButton("AC");  
  15.  
  16. 將窗口物體放入窗口:  
  17. GridBagLayout layout = new GridBagLayout();  
  18. getContentPane().setLayout(layout);  
  19. addComponent(layout, operation, 0041);  
  20. addComponent(layout, numbers[1], 1011);  
  21. addComponent(layout, numbers[2], 1111);  
  22. addComponent(layout, numbers[3], 1211);  
  23. addComponent(layout, numbers[4], 2011);  
  24. addComponent(layout, numbers[5], 2111);  
  25. addComponent(layout, numbers[6], 2211);  
  26. addComponent(layout, numbers[7], 3011);  
  27. addComponent(layout, numbers[8], 3111);  
  28. addComponent(layout, numbers[9], 3211);  
  29. addComponent(layout, dot, 4011);  
  30. addComponent(layout, numbers[0], 4111);  
  31. addComponent(layout, sqrt, 4211);  
  32. addComponent(layout, plus, 1311);  
  33. addComponent(layout, minus, 2311);  
  34. addComponent(layout, multi, 3311);  
  35. addComponent(layout, div, 4311);  
  36. addComponent(layout, equal, 5021);  
  37. addComponent(layout, changePN, 5211);  
  38. addComponent(layout, clear, 5311);  
  39. }  
  40.  


對按鈕進行反應的方法:

  1. public void actionPerformed(ActionEvent e) {  
  2. JButton btn = (JButton) e.getSource();  
  3. if (btn == clear) {  
  4. operation.setText("0");  
  5. dotExist = false;  
  6. storedNumber = 0;  
  7. lastOperator = '?';  
  8. else if (btn == equal) {  
  9. operate('=');  
  10. equaled = true;  
  11. else if (btn == plus) {  
  12. operate('+');  
  13. equaled = false;  
  14. else if (btn == minus) {  
  15. operate('-');  
  16. equaled = false;  
  17. else if (btn == multi) {  
  18. operate('*');  
  19. equaled = false;  
  20. else if (btn == div) {  
  21. operate('/');  
  22. equaled = false;  
  23. else if (btn == changePN) {  
  24. operate('p');  
  25. operate('=');  
  26. equaled = true;  
  27. else if (btn == sqrt) {  
  28. operate('s');  
  29. operate('=');  
  30. equaled = true;  
  31. else {  
  32. if (equaled)  
  33. storedNumber = 0;  
  34. for (int i = 0; i < 10; i++)  
  35. if (btn == numbers[i]) {  
  36. if (operation.getText().equals("0"))  
  37. operation.setText("" + i);  
  38. else if (!operated)  
  39. operation.setText(operation.getText() + i);  
  40. else {  
  41. operation.setText("" + i);  
  42. operated = false;  
  43. }  
  44. }  
  45. if (btn == dot && !dotExist) {  
  46. operation.setText(operation.getText() + ".");  
  47. dotExist = true;  
  48. }  
  49. }  
  50. }  


進行運算的方法:

  1. private void operate(char operator) {  
  2. double currentNumber = Double.valueOf(operation.getText())  
  3. .doubleValue();  
  4. if (lastOperator == '?')  
  5. storedNumber = currentNumber;  
  6. else if (lastOperator == '+')  
  7. storedNumber += currentNumber;  
  8. else if (lastOperator == '-')  
  9. storedNumber -= currentNumber;  
  10. else if (lastOperator == '*')  
  11. storedNumber *= currentNumber;  
  12. else if (lastOperator == '/')  
  13. storedNumber /= currentNumber;  
  14. else if (lastOperator == 'p')  
  15. storedNumber *= -1;  
  16. else if (lastOperator == 's')  
  17. storedNumber = Math.sqrt(currentNumber);  
  18. else if (lastOperator == '=' && equaled)  
  19. storedNumber = currentNumber;  
  20. operation.setText("" + storedNumber);  
  21. operated = true;  
  22. lastOperator = operator;  
  23. }  


快捷使用GridBagLayout的方法:

  1. private void addComponent(GridBagLayout layout, Component component,  
  2. int row, int col, int width, int height) {  
  3. GridBagConstraints constraints = new GridBagConstraints();  
  4. constraints.fill = GridBagConstraints.BOTH;  
  5. constraints.insets = new Insets(102102);  
  6. constraints.weightx = 100;  
  7. constraints.weighty = 100;  
  8. constraints.gridx = col;  
  9. constraints.gridy = row;  
  10. constraints.gridwidth = width;  
  11. constraints.gridheight = height;  
  12. layout.setConstraints(component, constraints);  
  13. if (component instanceof JButton)  
  14. ((JButton) component).addActionListener(this);  
  15. getContentPane().add(component);  
  16. }  

主方法初始化并顯示窗口:

  1. public static void main(String[] args) {  
  2. Calculator3 calc = new Calculator3();  
  3. calc.setSize(290400);  
  4. calc.setVisible(true);  
  5. }  

【編輯推薦】

  1. 20個開發(fā)人員非常有用的Java功能代碼
  2. 走進Java 7中的模塊系統(tǒng)
  3. JavaFX 1.2 已經(jīng)發(fā)布 主要新功能一覽
  4. 2009年十大Java技術解決方案
  5. 2008最值得學習的五種JAVA技術

 

責任編輯:仲衡 來源: 施小平個人博客
相關推薦

2017-08-29 09:40:26

JavaScript代碼神經(jīng)網(wǎng)絡

2009-06-15 14:00:44

Java小程序驗證

2011-04-11 09:53:06

Oracle

2010-07-21 16:53:33

telnet命令

2010-07-26 15:14:04

telnet服務

2009-10-21 09:58:28

桌面LinuxLinux操作系統(tǒng)

2011-05-27 10:02:42

Shell

2023-11-28 16:35:40

MongoDB遷移Oplog

2022-07-12 08:19:16

XJSON四則運算場景

2023-04-30 00:02:40

K8Skubelet數(shù)據(jù)

2022-10-27 10:06:16

Presto SQLAntlr大數(shù)據(jù)

2009-07-09 17:40:26

Java運算符

2021-01-04 09:50:09

前端數(shù)據(jù)技術

2013-03-11 10:37:08

2012-04-18 18:12:47

iPad Mini

2019-12-03 10:40:25

LinuxCPU網(wǎng)絡調優(yōu)

2022-05-18 16:06:15

位運算異或運算

2018-01-30 10:17:05

AI芯片處理器

2009-08-12 10:47:03

C#運算符重載

2016-10-14 14:04:34

JAVA語法main
點贊
收藏

51CTO技術棧公眾號