.设计一个简单计算器,JAVA

如题所述

以下是我按你的需求手写的代码,希望对你有所帮助,望采纳

import java.awt.*;
import java.awt.event.*;

public class Test extends Frame{
public static void main(String args[]) {
new Test();
}

TextField number1 = new TextField();
TextField number2 = new TextField();
TextField result = new TextField();
Button plus = new Button("+");
Button subtract = new Button("-");
Button multiply = new Button("×");
Button divide = new Button("÷");
double num1,num2,resl;

Test(){
setLayout(null); 
// 关闭窗口
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
setBounds(200, 100, 400, 300);
setTitle("简单计算器"); 
// 设置窗口是否可变大小
setResizable(false);
setVisible(true);
number1.setBounds(100, 80, 150, 20);
add(number1);
number2.setBounds(100, 130, 150, 20);
add(number2);
result.setBounds(100, 180, 150, 20);
add(result);

plus.setBounds(300, 55, 80, 20);
add(plus);
plus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (number1.getText().trim() != "" && number2.getText().trim() != "") {
num1 = Double.parseDouble(number1.getText().trim());
num2 = Double.parseDouble(number2.getText().trim());
resl = num1 + num2;
result.setText(String.valueOf(resl));
number1.setText("");
number2.setText("");
}
}
});
subtract.setBounds(300, 105, 80, 20);
add(subtract);
subtract.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (number1.getText().trim() != "" && number2.getText().trim() != "") {
num1 = Double.parseDouble(number1.getText().trim());
num2 = Double.parseDouble(number2.getText().trim());
resl = num1 - num2;
result.setText(String.valueOf(resl));
number1.setText("");
number2.setText("");
}
}
});
multiply.setBounds(300, 155, 80, 20);
add(multiply);
multiply.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (number1.getText().trim() != "" && number2.getText().trim() != "") {
num1 = Double.parseDouble(number1.getText().trim());
num2 = Double.parseDouble(number2.getText().trim());
resl = num1 * num2;
result.setText(String.valueOf(resl));
number1.setText("");
number2.setText("");
}
}
});
divide.setBounds(300, 205, 80, 20);
add(divide);
divide.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (number1.getText().trim() != "" && number2.getText().trim() != "") {
num1 = Double.parseDouble(number1.getText().trim());
num2 = Double.parseDouble(number2.getText().trim());
resl = num1 / num2;
result.setText(String.valueOf(resl));
number1.setText("");
number2.setText("");
}
}
});
}

public void paint(Graphics g) {
g.setColor(Color.LIGHT_GRAY);
g.fillRect(20, 45, 250, 230);
g.setColor(Color.BLACK);
g.drawString("操作数", 60, 95);
g.drawString("操作数", 60, 145);
g.drawString("结果", 70, 195);
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-14
package zhidao;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class TestComputer extends JFrame implements ActionListener{
 private JTextField op1;
 private JTextField op2;
 private JTextField result;
 private JButton add;
 private JButton del;
 private JButton mul;
 private JButton mod;
 public TestComputer() {
  
  setBounds(200, 200, 400, 300);
  setResizable(false);
  getContentPane().setLayout(null);
  
  JPanel panel = new JPanel();
  panel.setBounds(33, 25, 176, 215);
  getContentPane().add(panel);
  panel.setLayout(null);
  
  JLabel label = new JLabel("\u64CD\u4F5C\u65701");
  label.setBounds(10, 28, 54, 15);
  panel.add(label);
  
  JLabel label_1 = new JLabel("\u64CD\u4F5C\u65702");
  label_1.setBounds(10, 69, 54, 15);
  panel.add(label_1);
  
  JLabel label_2 = new JLabel("\u7ED3\u679C");
  label_2.setBounds(10, 138, 54, 15);
  panel.add(label_2);
  
  op1 = new JTextField();
  op1.setBounds(74, 25, 92, 21);
  panel.add(op1);
  op1.setColumns(10);
  
  op2 = new JTextField();
  op2.setBounds(74, 66, 92, 21);
  panel.add(op2);
  op2.setColumns(10);
  
  result = new JTextField();
  result.setBounds(74, 135, 92, 21);
  panel.add(result);
  result.setColumns(10);
  
  add = new JButton("+");
  add.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent arg0) {
   }
  });
  add.setBounds(283, 35, 93, 23);
  getContentPane().add(add);
  add.addActionListener(this);
  
  del = new JButton("-");
  del.setBounds(283, 74, 93, 23);
  getContentPane().add(del);
  del.addActionListener(this);
  
  mul = new JButton("*");
  mul.setBounds(283, 118, 93, 23);
  getContentPane().add(mul);
  mul.addActionListener(this);
  
  mod = new JButton("÷");
  mod.setBounds(283, 164, 93, 23);
  getContentPane().add(mod);
  mod.addActionListener(this);
 }
 @Override
 public void actionPerformed(ActionEvent e) {
  // TODO Auto-generated method stub
  String text1 = op1.getText();
  String text2 = op2.getText();
  Double opr1 = Double.valueOf(text1);
  Double opr2 = Double.valueOf(text2);
  
  Object source = e.getSource();
  if(add == source){
   result.setText(opr1+opr2+"");
  }
  if(del == source){
   result.setText(opr1-opr2+"");
  }
  if(mul == source){
   result.setText(opr1*opr2+"");
  }
  if(mod == source){
   result.setText(opr1/opr2+"");
  }
 }
 
 public static void main(String[] args) {
  new TestComputer().setVisible(true);
 }
}

第2个回答  2013-06-14

操作类:

  

public class text {

    //加
    public double add(double one ,double two){
        double result = one + two;
        return result;
    }
    //减
    public double add(double one ,double two){
        double result = one - two;
        return result;
    }
    //乘
    public double take(double one ,double two){
        double result = one * two;
        return result;
    }
    //除
    public double divide(double one ,double two){
        double result = one/two;
        return result;
    }
}

第3个回答  2013-06-14
这个其他一点也不简单 5 QB 帮你搞定追问

谢谢,已经搞定了

第4个回答  2013-06-14
java的swing 图形界面 GUI做