首页 > 要闻 > > 正文
2024-04-05 20:12:16

java计算器程序代码(java计算器源代码)

导读 大家好,我是小夏,我来为大家解答以上问题。java计算器程序代码,java计算器源代码很多人还不知道,现在让我们一起来看看吧!1、import j...

大家好,我是小夏,我来为大家解答以上问题。java计算器程序代码,java计算器源代码很多人还不知道,现在让我们一起来看看吧!

1、import java.awt.*;

2、import java.awt.event.*;

3、import javax.swing.*;

4、public class Calculator

5、{

6、      public static void main(String[] args)

7、      {

8、         CalculatorFrame frame=new CalculatorFrame();

9、         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

10、         frame.setVisible(true);

11、         

12、      }

13、}

14、class CalculatorFrame extends JFrame

15、{

16、    public CalculatorFrame()

17、    {

18、   

19、       setTitle("Calculator");

20、       CalculatorPanel panel=new CalculatorPanel();

21、       add(panel);

22、       

23、       pack();

24、    }

25、    

26、}

27、class CalculatorPanel extends Panel

28、{

29、    public CalculatorPanel()

30、    {

31、       setLayout(new BorderLayout());

32、       result=0;

33、       lastCommand="=";

34、       start=true;

35、       flag=true;

36、       display=new JButton("0");

37、       display.setEnabled(false);

38、       add(display,BorderLayout.NORTH);

39、       ActionListener insert=new InsertAction();

40、       ActionListener command=new CommandAction();

41、       panel=new JPanel();

42、       panel.setLayout(new GridLayout(4,5));

43、       addButton("7",insert);

44、       addButton("8",insert);

45、       addButton("9",insert);

46、       addButton("/",command);

47、       addButton("CE",command);

48、       addButton("4",insert);

49、       addButton("5",insert);

50、       addButton("6",insert);

51、       addButton("*",command);

52、       addButton("Backspace",command);

53、       addButton("1",insert);

54、       addButton("2",insert);

55、       addButton("3",insert);

56、       addButton("-",command);

57、       addButton("sqrt",command);

58、       addButton("0",insert);

59、       addButton(".",insert);

60、       addButton("=",command);

61、       addButton("+",command);

62、       addButton("1/x",command);

63、       add(panel,BorderLayout.CENTER);

64、    }

65、    private void addButton(String label,ActionListener listener)

66、    {

67、       JButton button=new JButton(label);

68、       button.addActionListener(listener);

69、       panel.add(button);

70、    }

71、    private class InsertAction implements ActionListener

72、    {

73、       public void actionPerformed(ActionEvent event)

74、       {

75、          String input=event.getActionCommand();

76、          if(start&&flag)

77、          {

78、             display.setText("");

79、             start=false;

80、          }

81、          if(flag)

82、          display.setText(display.getText()+input);

83、       }

84、    }

85、    private class CommandAction implements ActionListener

86、    {

87、        public void actionPerformed(ActionEvent event)

88、        {

89、        String command=event.getActionCommand();

90、  if(command.equals("CE"))

91、  {

92、            display.setText("0");

93、            start=true;

94、            flag=true;

95、            command="=";

96、     }

97、        else

98、        if(start&&flag)

99、        {

100、           if(command.equals("-"))

101、           {

102、              display.setText(command);

103、              start=false;

104、           }

105、           else

106、           if((command.equals("1/x")||command.equals("sqrt"))&&flag)

107、              calculate(Double.parseDouble(display.getText()),command);

108、           else

109、             if(flag)

110、                lastCommand=command;

111、        }

112、        else

113、        {

114、   if(command.equals("Backspace")&&flag)

115、   {

116、    String s=display.getText();

117、    char[] s1=s.toCharArray();

118、    if(s.length()>=2)

119、    {

120、     String s2=new String(s1,0,s.length()-1);

121、     display.setText(s2);

122、    }

123、    else

124、    {

125、        display.setText("0");

126、        start=true;

127、       }

128、             }

129、             else  if(flag)

130、             {

131、                calculate(Double.parseDouble(display.getText()),command);

132、                  lastCommand=command;

133、                start=true;

134、         }

135、        }

136、}

137、}

138、public void calculate(double x,String command)

139、{

140、   if(lastCommand.equals("+"))   result+=x;

141、   else if(lastCommand.equals("-"))   result-=x;

142、   else if(lastCommand.equals("/"))

143、   {

144、    if(x!=0)

145、      result/=x;

146、    else

147、    {

148、       display.setText("除数不能为0");

149、       start=false;

150、       flag=false;

151、       return;

152、       }

153、   }

154、   else if(lastCommand.equals("*"))   result*=x;

155、   else if(command.equals("1/x"))

156、   {

157、    if(x!=0)

158、         result=1/x;

159、       else

160、    {

161、       display.setText("除数不能为0");

162、       start=false;

163、       flag=false;

164、       return;

165、       }

166、   }

167、   else if(command.equals("sqrt"))

168、   {

169、    if(x>=0)

170、      result=Math.sqrt(x);

171、    else

172、    {

173、      display.setText("函数输入无效");

174、      start=false;

175、      flag=false;

176、      return;

177、       }

178、   }

179、   else if(lastCommand.equals("="))   result=x;

180、   display.setText(""+result);

181、}

182、  private JButton display;

183、  private JPanel panel;

184、  private double result;

185、  private String lastCommand;

186、  private boolean start;

187、  private boolean flag;

188、}

本文到此讲解完毕了,希望对大家有帮助。