calculator java_Java-Calculator

1 import javax.swing.*;2 import java.awt.*;3 import java.awt.event.*;4

5 public class Calculator extendsJFrame {6

7

8 private ButtonPane buttonPane = newButtonPane();9 private TextPane textPane = newTextPane();10 private numPane numPane = newnumPane();11 private int hkw=0,num=0;12 private doubleoperator1, operator2,temp,T;13

14 public static voidmain(String[] args) {15 Calculator calculator = newCalculator();16

17 calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);18 calculator.pack();19 calculator.setLocationRelativeTo(null);20 calculator.setVisible(true);21 }22

23 privateCalculator() {24 add(textPane, BorderLayout.NORTH);25 add(numPane, BorderLayout.CENTER);26 add(buttonPane, BorderLayout.SOUTH);27 }28

29 private void parseOperators(doublet1) {30

31 if(num==0)32 operator1 =t1;33 else if(num!=0)34 operator2 =t1;35 num++;36 }37

38 private voidadd() {39 hkw=1;40

41 }42

43 private voidsubtract() {44 hkw=2;45

46 }47

48 private voidmultiply() {49 hkw=3;50

51 }52

53 private voiddivide() {54 hkw=4;55

56 }57 private voidequal() {58 if(hkw==1)59 {T=operator1 +operator2;60 setAnswer(T);}61 else if(hkw==2)62 {T=operator1 -operator2;63 setAnswer(T);}64 else if(hkw==3)65 {T=operator1 *operator2;66 setAnswer(T);}67 else if(hkw==4)68 {T=operator1 /operator2;69 setAnswer(T);}70

71 }72

73 private void setAnswer(doublevalue) {74 textPane.txtResult.setText(value + "");75 operator1=T;76 num=1;77 }78

79 //The panel containing our operation buttons

80 private class ButtonPane extendsJPanel {81

82 private JButton btnAdd = new JButton("+");83 private JButton btnSubtract = new JButton("-");84 private JButton btnMultiply = new JButton("*");85 private JButton btnDivide = new JButton("/");86 private JButton btnequl = new JButton("=");87 private ButtonListener listener = new ButtonListener(); //Just one listener

88

89 privateButtonPane() {90 btnAdd.addActionListener(listener);91 btnSubtract.addActionListener(listener);92 btnMultiply.addActionListener(listener);93 btnDivide.addActionListener(listener);94 btnequl.addActionListener(listener);95

96 add(btnAdd);97 add(btnSubtract);98 add(btnMultiply);99 add(btnDivide);100 add(btnequl);101 }102

103 private class ButtonListener implementsActionListener {104

105

106 public voidactionPerformed(ActionEvent e) {107

108

109 if (e.getSource() ==btnAdd) {110 Calculator.this.add();111 } else if (e.getSource() ==btnSubtract) {112 Calculator.this.subtract();113 } else if (e.getSource() ==btnMultiply) {114 Calculator.this.multiply();115 } else if (e.getSource() ==btnDivide) {116 Calculator.this.divide();117 }118 else if (e.getSource() ==btnequl) {119 equal();120 }121 }122 } //end ButtonListener class

123

124 } //end ButtonPane class

125

126

127 public static class TextPane extendsJPanel {128

129 private JLabel labelNum1 = new JLabel("请输入:");130 public JTextField txtResult = new JTextField("0",15);131 privateTextPane() {132 add(labelNum1);133 add(txtResult);134

135 txtResult.setEnabled(false);136 txtResult.setDisabledTextColor(Color.BLACK);137 }138

139 } //end TextPane class

140 private class numPane extendsJPanel {141

142 private JButton yi = new JButton("1");143 private JButton er = new JButton("2");144 private JButton san = new JButton("3");145 private JButton si = new JButton("4");146 private JButton wu = new JButton("5");147 private JButton liu = new JButton("6");148 private JButton qi = new JButton("7");149 private JButton ba = new JButton("8");150 private JButton jiu = new JButton("9");151 private JButton ling = new JButton("0");152

153 private ButtonListener listener = new ButtonListener(); //Just one listener

154

155 privatenumPane() {156 yi.addActionListener(listener);157 er.addActionListener(listener);158 san.addActionListener(listener);159 si.addActionListener(listener);160 wu.addActionListener(listener);161 liu.addActionListener(listener);162 qi.addActionListener(listener);163 ba.addActionListener(listener);164 jiu.addActionListener(listener);165 ling.addActionListener(listener);166

167

168 add(yi);169 add(er);170 add(san);171 add(si);172 add(wu);173 add(liu);174 add(qi);175 add(ba);176 add(jiu);177 add(ling);178

179 }180

181 private class ButtonListener implementsActionListener {182

183

184 public voidactionPerformed(ActionEvent e) {185

186

187 if (e.getSource() ==yi) {188 textPane.txtResult.setText("1");189 temp=1;190

191 } else if (e.getSource() ==er) {192 textPane.txtResult.setText("2");193 temp=2;194

195 } else if (e.getSource() ==san) {196 textPane.txtResult.setText("3");197 temp=3;198

199 } else if (e.getSource() ==si) {200 textPane.txtResult.setText("4");201 temp=4;202

203 }204 else if (e.getSource() ==wu) {205 textPane.txtResult.setText("5");206 temp=5;207

208 }209 else if (e.getSource() ==liu) {210 textPane.txtResult.setText("6");211 temp=6;212

213 }214 else if (e.getSource() ==qi) {215 textPane.txtResult.setText("7");216 temp=7;217

218 }219 else if (e.getSource() ==ba) {220 textPane.txtResult.setText("8");221 temp=8;222

223 }224 else if (e.getSource() ==jiu) {225 textPane.txtResult.setText("9");226 temp=9;227

228 }229 else if (e.getSource() ==ling) {230 textPane.txtResult.setText("0");231 temp=0;232

233 }234

235 parseOperators(temp);236 }237 } //end ButtonListener class

238

239 } //end ButtonPane class

240

241 } //end Calculator

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值