Java是一種廣泛使用的編程語言,在Web開發(fā)中有著廣泛的應(yīng)用。在下面的示例中,我們將使用Java中的ATW和Swing來創(chuàng)建一個簡單的計(jì)算器。
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Calculator extends JFrame implements ActionListener { private JTextField textField; private JButton button; private JPanel panel; public Calculator() { textField = new JTextField(10); button = new JButton("OK"); panel = new JPanel(); panel.add(textField); panel.add(button); button.addActionListener(this); add(panel); setTitle("Calculator"); setSize(200, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public void actionPerformed(ActionEvent evt) { String input = textField.getText(); int result = evaluate(input); JOptionPane.showMessageDialog(null, "The result is " + result); } public static int evaluate(String expression) { char[] tokens = expression.toCharArray(); Stackvalues = new Stack (); Stack ops = new Stack (); for (int i = 0; i< tokens.length; i++) { if (tokens[i] == ' ') continue; if (tokens[i] >= '0' && tokens[i]<= '9') { StringBuffer sbuf = new StringBuffer(); while (i< tokens.length && tokens[i] >= '0' && tokens[i]<= '9') sbuf.append(tokens[i++]); values.push(Integer.parseInt(sbuf.toString())); } else if (tokens[i] == '(') { ops.push(tokens[i]); } else if (tokens[i] == ')') { while (ops.peek() != '(') values.push(applyOp(ops.pop(), values.pop(), values.pop())); ops.pop(); } else if (tokens[i] == '+' || tokens[i] == '-' || tokens[i] == '*' || tokens[i] == '/') { while (!ops.empty() && hasPrecedence(tokens[i], ops.peek())) values.push(applyOp(ops.pop(), values.pop(), values.pop())); ops.push(tokens[i]); } } while (!ops.empty()) values.push(applyOp(ops.pop(), values.pop(), values.pop())); return values.pop(); } public static boolean hasPrecedence(char op1, char op2) { if (op2 == '(' || op2 == ')') return false; if ((op1 == '*' || op1 == '/') && (op2 == '+' || op2 == '-')) return false; else return true; } public static int applyOp(char op, int b, int a) { switch (op) { case '+': return a + b; case '-': return a - b; case '*': return a * b; case '/': if (b == 0) throw new UnsupportedOperationException("Cannot divide by zero"); return a / b; } return 0; } public static void main(String[] args) { new Calculator(); } }
我們使用JTextField和JButton來創(chuàng)建GUI,并添加了一個ActionListener來捕捉按鈕點(diǎn)擊事件并顯示計(jì)算結(jié)果。evaluate(String expression)方法使用一個棧來評估表達(dá)式。它接受包含算術(shù)表達(dá)式的字符串,并返回計(jì)算結(jié)果。
在這個示例中,我們演示了如何使用Java的ATW和Swing來創(chuàng)建一個簡單的計(jì)算器。您可以使用這個示例作為起點(diǎn),構(gòu)建更復(fù)雜的計(jì)算器,并探索Java的其他功能。