游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1523|回复: 0

简单计算器wxh zt

[复制链接]

1367

主题

1993

帖子

2118

积分

金牌会员

Rank: 6Rank: 6

积分
2118
发表于 2005-7-2 20:20:00 | 显示全部楼层 |阅读模式
            import java.awt.*;
            import java.awt.event.*;
            import javax.swing.*;


            class CalculatorPanel extends JPanel
            implements ActionListener
            { public CalculatorPanel()
            { setLayout(new BorderLayout());


            display = new JTextField("0");
            display.setEditable(false);
            add(display, "North");


            JPanel p = new JPanel();
            p.setLayout(new GridLayout(4, 4));
            String buttons = "789/456*123-0.=+";
            for (int i = 0; i < buttons.length(); i++)
            addButton(p, buttons.substring(i, i + 1));
            add(p, "Center");
            }


            private void addButton(Container c, String s)
            { JButton b = new JButton(s);
            c.add(b);
            b.addActionListener(this);
            }


            public void actionPerformed(ActionEvent evt)
            { String s = evt.getActionCommand();
            if (?0? <= s.charAt(0) && s.charAt(0) <= ?9?
            || s.equals("."))
            { if (start) display.setText(s);
            else display.setText(display.getText() + s);
            start = false;
            }
            else
            { if (start)
            { if (s.equals("-"))
            { display.setText(s); start = false; }
            else op = s;
            }
            else
            { double x =
            Double.parseDouble(display.getText());
            calculate(x);
            op = s;
            start = true;
            }
            }
            }


            public void calculate(double n)
            { if (op.equals("+")) arg += n;
            else if (op.equals("-")) arg -= n;
            else if (op.equals("*")) arg *= n;
            else if (op.equals("/")) arg /= n;
            else if (op.equals("=")) arg = n;
            display.setText("" + arg);
            }


            private JTextField display;
            private double arg = 0;
            private String op = "=";
            private boolean start = true;
            }


            class CalculatorFrame extends JFrame
            { public CalculatorFrame()
            { setTitle("Calculator");
            setSize(200, 200);
            addWindowListener(new WindowAdapter()
            { public void windowClosing(WindowEvent e)
            { System.exit(0);
            }
            } );


            Container contentPane = getContentPane();
            contentPane.add(new CalculatorPanel());
            }
            }


            public class Calculator
            { public static void main(String[] args)
            { JFrame frame = new CalculatorFrame();
            frame.show();
            }
            }  
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-26 07:01

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表