共回答了20个问题采纳率:80%
寔杩炵画杩愮畻寰桙br/>import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class Calculator {
x05public static void main(String[] args) {
x05x05Frame f = new Frame("Calculator");
x05x05
x05x05final TextField tf = new TextField();
x05x05Panel p = new Panel();
x05x05
x05x05f.setLayout(new BorderLayout());
x05x05f.add(tf,BorderLayout.NORTH);
x05x05f.add(p,BorderLayout.CENTER);
x05x05
x05x05p.setLayout(new GridLayout(4,4));
x05x05
x05x05Button one = new Button("1");
x05x05Button two = new Button("2");
x05x05Button three = new Button("3");
x05x05Button four = new Button("4");
x05x05Button five = new Button("5");
x05x05Button six = new Button("6");
x05x05Button seven = new Button("7");
x05x05Button eight = new Button("8");
x05x05Button nine = new Button("9");
x05x05Button zero = new Button("0");
x05x05Button add = new Button("+");
x05x05Button sub = new Button("-");
x05x05Button mul = new Button("*");
x05x05Button div = new Button("/");
x05x05Button decimal = new Button(".");
x05x05final Button equal = new Button("=");
x05x05
x05x05p.add(one);
x05x05p.add(two);
x05x05p.add(three);
x05x05p.add(four);
x05x05p.add(five);
x05x05p.add(six);
x05x05p.add(seven);
x05x05p.add(eight);
x05x05p.add(nine);
x05x05p.add(zero);
x05x05p.add(add);
x05x05p.add(sub);
x05x05p.add(mul);
x05x05p.add(div);
x05x05p.add(decimal);
x05x05p.add(equal);
x05x05
x05x05final String[] ary = {"",null,""};
x05x05
x05x05class NumMouseListener implements MouseListener{
x05x05x05public void mouseClicked(MouseEvent e) {
x05x05x05x05String num = ((Button)e.getSource()).getLabel().trim();
x05x05x05x05if(ary[1] == null){
x05x05x05x05x05ary[0] = ary[0] + "" + num;
x05x05x05x05}else{
x05x05x05x05x05ary[2] = ary[2] + "" + num;
x05x05x05x05}
x05x05x05x05
x05x05x05x05tf.setText(tf.getText() + "" + num);
x05x05x05}
x05x05x05public void mouseEntered(MouseEvent e) {}
x05x05x05public void mouseExited(MouseEvent e) {}
x05x05x05public void mousePressed(MouseEvent e) {}
x05x05x05public void mouseReleased(MouseEvent e) {}
x05x05x05
x05x05}
x05x05
x05x05one.addMouseListener(new NumMouseListener());
x05x05two.addMouseListener(new NumMouseListener());
x05x05three.addMouseListener(new NumMouseListener());
x05x05four.addMouseListener(new NumMouseListener());
x05x05five.addMouseListener(new NumMouseListener());
x05x05six.addMouseListener(new NumMouseListener());
x05x05seven.addMouseListener(new NumMouseListener());
x05x05eight.addMouseListener(new NumMouseListener());
x05x05nine.addMouseListener(new NumMouseListener());
x05x05zero.addMouseListener(new NumMouseListener());
x05x05
x05x05class OperatotrMouseListener implements MouseListener{
x05x05x05public void mouseClicked(MouseEvent e) {
x05x05x05x05if(e.getSource() == equal){
x05x05x05x05x05try {
x05x05x05x05x05x05long result = calculate(Integer.parseInt(ary[0]),Integer.parseInt(ary[2]),ary[1]);
x05x05x05x05x05x05tf.setText(String.valueOf(result));
x05x05x05x05x05x05
x05x05x05x05x05x05ary[0] = tf.getText();
x05x05x05x05x05x05ary[1] = null;
x05x05x05x05x05x05ary[2] = "";
x05x05x05x05x05} catch (Exception e1) {
x05x05x05x05x05x05e1.printStackTrace();
x05x05x05x05x05}
x05x05x05x05}else{
x05x05x05x05x05ary[1] = ((Button) e.getSource()).getLabel();
x05x05x05x05x05
x05x05x05x05x05if(ary[0].length() > 0){
x05x05x05x05x05x05ary[2] = "";
x05x05x05x05x05}else{
x05x05x05x05x05x05ary[0] = String.valueOf(tf.getText());
x05x05x05x05x05}
x05x05x05x05x05
x05x05x05x05x05tf.setText("");
x05x05x05x05}
x05x05x05}
x05x05x05private long calculate(int i,int j,String operator) throws Exception {
x05x05x05x05if(operator.equals("+")){
x05x05x05x05x05return i + j;
x05x05x05x05}else if(operator.equals("-")){
x05x05x05x05x05return i - j;
x05x05x05x05}else if(operator.equals("*")){
x05x05x05x05x05return i * j;
x05x05x05x05}else if(operator.equals("/")){
x05x05x05x05x05return i / j;
x05x05x05x05}else{
x05x05x05x05x05throw new Exception("Invalid operator.(Only +-/* accepted");
x05x05x05x05}
x05x05x05}
x05x05x05public void mouseEntered(MouseEvent e) {}
x05x05x05public void mouseExited(MouseEvent e) {}
x05x05x05public void mousePressed(MouseEvent e) {}
x05x05x05public void mouseReleased(MouseEvent e) {}
x05x05}
x05x05
x05x05add.addMouseListener(new OperatotrMouseListener());
x05x05mul.addMouseListener(new OperatotrMouseListener());
x05x05div.addMouseListener(new OperatotrMouseListener());
x05x05sub.addMouseListener(new OperatotrMouseListener());
x05x05equal.addMouseListener(new OperatotrMouseListener());
x05x05
x05x05f.addWindowListener(new WindowListener(){
x05x05x05public void windowClosing(WindowEvent e) {
x05x05x05x05System.exit(0);
x05x05x05}
x05x05x05
x05x05x05public void windowActivated(WindowEvent e) {}
x05x05x05public void windowClosed(WindowEvent e) {}
x05x05x05public void windowDeactivated(WindowEvent e) {}
x05x05x05public void windowDeiconified(WindowEvent e) {}
x05x05x05public void windowIconified(WindowEvent e) {}
x05x05x05public void windowOpened(WindowEvent e) {}
x05x05});
x05x05
x05x05f.setVisible(true);
x05x05f.setBounds(200,200,250,250);
x05x05f.validate();
x05}
}
1年前
8