简单写了下,代码如下请参照:/** * 计算器类 * * @author Administrator * */public class Calculator extends JFrame implements ActionListener { private static final long serialVersionUID = 3868243398506940702L; // 文本框 private JTextField result; // 按钮数组 private JBu...
JAVA简单咋做,计算器代码
简单写了下,代码如下请参照:
/** * 计算器类 * * @author Administrator * */public class Calculator extends JFrame implements ActionListener { private static final long serialVersionUID = 3868243398506940702L; // 文本框 private JTextField result; // 按钮数组 private JButton[] buttons; // 按钮文本 private final String[] characters = { "7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", "0", ".", "=", "+" }; // 是否为第一个输入的数字 private boolean isFirstDigit = true; // 运算结果 private double resultNum = 0.0; // 运算符 private String operator = "="; public Calculator(String title) { // 设置标题栏 super(title); // 初始化各组件 init(); // 注册各组件监听器 registerListener(); // 显示窗体 setVisible(true); } /** * 初始化各组件 */ private void init() { // 常用属性初始化 setSize(220, 200); setResizable(false); setLocationRelativeTo(null); setDefaultCloseOperation(EXIT_ON_CLOSE); /* 文本框对象初始化 */ result = new JTextField("0"); // 文本右对齐 result.setHorizontalAlignment(JTextField.RIGHT); // 设置是否可编辑 result.setEditable(false); /* 按钮初始化 */ buttons = new JButton[characters.length]; for (int i = 0; i < buttons.length; i++) { buttons[i] = new JButton(characters[i]); buttons[i].setFocusable(false); // 不允许按钮定位焦点 } /* 将文本框与按钮添加到窗体中 */ add(result, BorderLayout.NORTH); JPanel pnl = new JPanel(new GridLayout(4, 4, 5, 5)); for (JButton jButton : buttons) { pnl.add(jButton); } add(pnl); this.getContentPane().setFocusable(true); } /** * 注册监听器 */ private void registerListener() { for (JButton jButton : buttons) { jButton.addActionListener(this); } // 注册键盘事件 this.getContentPane().addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { String text = String.valueOf(e.getKeyChar()); if (Character.isDigit(text.charAt(0)) || ".".equals(text)) { // 数字或小数点 handleNumber(text); } else if ("+-*/=".indexOf(text) != -1) { // 运算符 handleOperator(text); } else if (e.getKeyCode() == 8) { // 退格键 String tmp = result.getText().trim(); if (tmp.length() == 1) { result.setText("0"); isFirstDigit = true; } else { result.setText(tmp.substring(0, tmp.length() - 1)); } } } }); } @Override public void actionPerformed(ActionEvent e) { JButton btn = (JButton) e.getSource(); String text = btn.getText().trim(); if (Character.isDigit(text.charAt(0)) || ".".equals(text)) { // 处理数字和小数点 handleNumber(text); } else { // 处理运算符 handleOperator(text); } } /** * 处理数字和小数点 * * @param text */ private void handleNumber(String text) { if (isFirstDigit) { // 第一次输入 if (".".equals(text)) { this.result.setText("0."); } else { this.result.setText(text); } } else if ("0".equals(text) && "0".equals(this.result.getText())) { isFirstDigit = true; return; } else if (".".equals(text) && this.result.getText().indexOf(".") == -1) { this.result.setText(this.result.getText() + "."); } else if (!".".equals(text)) { this.result.setText(this.result.getText() + text); } isFirstDigit = false; } /** * 处理运算符 * * @param text */ private void handleOperator(String text) { switch (operator) { // 处理各项运算 适用于JDK1.7版本的 case "+": resultNum += Double.parseDouble(this.result.getText()); break; case "-": resultNum -= Double.parseDouble(this.result.getText()); break; case "*": resultNum *= Double.parseDouble(this.result.getText()); break; case "/": resultNum /= Double.parseDouble(this.result.getText()); break; case "=": resultNum = Double.parseDouble(this.result.getText()); break; } // 将文本框的值修改为运算结果 this.result.setText(String.valueOf(resultNum)); // 将点击的运算符放入operator保存 operator = text; // 下一个数字第一次点击 isFirstDigit = true; } public static void main(String[] args) { new Calculator("My Calculator"); }}运行结果如下:
2017-12-22
语言很容易学的,,,买本书或者上网搜一下教学视频就好了2017-12-24
可以私信我,很简单2017-12-23
如果您是使用cmd来运行的话,我这里有个方法:
两整数个数相加,如果需要更多个数相加的话,增加变量就可以了:
class calculator{ public static void main(String args) { int x = 1; //这里是您需要输入的第一个需要相加的数字 int y = 1; //这里是您需要输入的第二个需要相加的数字 System.out.println(x+y); //打印结果 }}2018-01-03