import java.awt.*;
import java.swing.*;
public class Jtime
{
public static void main(String args[]){
JFrame f=new JFrame("计算器");
TextField display=new TextField();
JPanel pan=new JPanel();
f.getContentPane().add(display,BorderLayout.NORTH);
f.getContentPane(pan,BorderLayout.CENTER);
pan.setLayout(new GridLayout(4,4));
JButton b[]=new JButton[16];
int i;
for(i=0;i<=15;i++)
{
b[i]=new JButton(i+7+"");
if(i==3)
b[i]=new JButton("/");
if(i>3)
b[i]=new JButton(i+"");
if(i==7)
b[i]=new JButton("*");
if(i>7)
b[i]=new JButton(i-7+"");
if(i==11)
b[i]=new JButton("+");
if(i==12)
b[i]=new JButton(i-12+"");
if(i==13)
b[i]=new JButton(".");
if(i==14)
b[i]=new JButton("=");
if(i==15)
b[i]=new Button("-");
pan.add(b[i]);
}
f.setSize(400,200);
f.setVisible(true);
}
}
import java.swing.*;
public class Jtime
{
public static void main(String args[]){
JFrame f=new JFrame("计算器");
TextField display=new TextField();
JPanel pan=new JPanel();
f.getContentPane().add(display,BorderLayout.NORTH);
f.getContentPane(pan,BorderLayout.CENTER);
pan.setLayout(new GridLayout(4,4));
JButton b[]=new JButton[16];
int i;
for(i=0;i<=15;i++)
{
b[i]=new JButton(i+7+"");
if(i==3)
b[i]=new JButton("/");
if(i>3)
b[i]=new JButton(i+"");
if(i==7)
b[i]=new JButton("*");
if(i>7)
b[i]=new JButton(i-7+"");
if(i==11)
b[i]=new JButton("+");
if(i==12)
b[i]=new JButton(i-12+"");
if(i==13)
b[i]=new JButton(".");
if(i==14)
b[i]=new JButton("=");
if(i==15)
b[i]=new Button("-");
pan.add(b[i]);
}
f.setSize(400,200);
f.setVisible(true);
}
}
import javax.swing.*;
public class Test
{
public static void main(String args[]){
JFrame f=new JFrame("计算器");
TextField display=new TextField();
JPanel pan=new JPanel();
f.getContentPane().add(display,BorderLayout.NORTH);
f.getContentPane().add(pan,BorderLayout.CENTER);
pan.setLayout(new GridLayout(4,4));
JButton b[]=new JButton[16];
int i;
for(i=0;i <=15;i++)
{
b[i]=new JButton(i+7+"");
if(i==3)
b[i]=new JButton("/");
if(i>3)
b[i]=new JButton(i+"");
if(i==7)
b[i]=new JButton("*");
if(i>7)
b[i]=new JButton(i-7+"");
if(i==11)
b[i]=new JButton("+");
if(i==12)
b[i]=new JButton(i-12+"");
if(i==13)
b[i]=new JButton(".");
if(i==14)
b[i]=new JButton("=");
if(i==15)
b[i]=new JButton("-");
pan.add(b[i]);
}
f.setSize(400,200);
f.setVisible(true);
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.applet.*;public class Calculator extends Applet implements ActionListener {
JTextField result; // 显示结果
JTextField memo; // 显示记忆区中的内容
JButton dotBtn, equBtn, clsBtn, plusOp, minusOp, mulOp, divOp; // 操作按钮
JButton[] numbtn = new JButton[10]; // 数字按钮
String preTxt; // 前一操作数
String curTxt; // 当前操作数
String preOp; // 前一操作符
boolean isFloat; // 是否为浮点数
boolean isNum;
boolean isDec; // 是否是小数
String num[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
public void init() {
resize(280,180); // 设置Applet窗口大小
setBackground(Color.LIGHT_GRAY);
preTxt = ""; // 初始化值
curTxt = "";
preOp = "";
isFloat = false;
isNum = false;
// 界面对象初始化
JPanel container = new JPanel(); // 整个计算器的面板
JPanel dispn = new JPanel(); // 显示区域的面板
JPanel numpn = new JPanel(); // 数字键区的面板
numpn.setFont(new Font(null, Font.BOLD, 10));
result = new JTextField(12);
result.setEditable(false); // 禁止编辑文本域
result.setBackground(Color.WHITE);
result.setHorizontalAlignment(JTextField.RIGHT);
memo = new JTextField(5);
memo.setEditable(false);
memo.setHorizontalAlignment(JTextField.RIGHT);
memo.setBackground(new Color(245, 245, 245));
clsBtn = new JButton("C");
clsBtn.setForeground(Color.RED); // 设置前景色
clsBtn.addActionListener(this); // 注册监听器
dotBtn = new JButton(".");
dotBtn.setForeground(Color.RED);
dotBtn.addActionListener(this);
equBtn = new JButton("=");
equBtn.setForeground(Color.RED);
equBtn.addActionListener(this);
plusOp = new JButton("+");
plusOp.setForeground(Color.RED);
plusOp.addActionListener(this);
minusOp = new JButton("-");
minusOp.setForeground(Color.RED);
minusOp.addActionListener(this);
mulOp = new JButton("*");
mulOp.setForeground(Color.RED);
mulOp.addActionListener(this);
divOp = new JButton("/");
divOp.setForeground(Color.RED);
divOp.addActionListener(this);
// 界面布局
setForeground(Color.blue); // 前景色设置
container.setLayout(new BorderLayout());
dispn.setLayout(new FlowLayout());
dispn.add(memo);
dispn.add(result);
dispn.add(clsBtn);
// 四行三列,水平、垂直距离都为3
numpn.setLayout(new GridLayout(4,4,3,3));
numpn.add(plusOp);
numpn.add(minusOp);
numpn.add(mulOp);
numpn.add(divOp);
for(int i=0; i<10; i++) {
numbtn[i] = new JButton(num[i]);
numbtn[i].setActionCommand(String.valueOf(i));
numbtn[i].addActionListener(this);
numpn.add(numbtn[i]);
}
numpn.add(dotBtn);
numpn.add(equBtn);
this.add(container);
container.add(dispn, BorderLayout.NORTH);
container.add(numpn, BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent e){
JButton opBtn = (JButton) e.getSource();
String str;
str = opBtn.getText();
if(opBtn == clsBtn){ // 清屏
doCls();
return;
}
for(int i=0; i<10; i++){ // 数字输入
if(opBtn == numbtn[i]){
disPretxt(str);
return;
}
}
if(opBtn == dotBtn){ // 小数点输入
if(!isDec) {
disPretxt(str);
isFloat = true; // 浮点数标志位为真
isDec = true;
}
return;
}
// 运算符输入
if((opBtn == plusOp) || (opBtn == mulOp) || (opBtn == divOp) || (opBtn == minusOp)){
if(preTxt.equals("")) {
preTxt = curTxt;
curTxt = "";
memo.setText(preTxt);
result.setText("");
}
else if(!curTxt.equals("")){
doCalcul();
memo.setText(preTxt);
result.setText("");
curTxt = "";
}
else{
memo.setText(preTxt);
result.setText("");
}
if(!(curTxt.equals("")&&preTxt.equals("")))
preOp = str;
isNum = false;
isDec = false;
return;
}
if(opBtn == equBtn){ // 计算结果
if(!preTxt.equals("")&&!curTxt.equals("")){
doCalcul();
memo.setText("");
result.setText(preTxt);
curTxt = "";
preOp = "";
isNum = true;
isDec = false;
}
return;
}
}
public void disPretxt(String s) {
if(s.equals(".") && curTxt.equals("")) {
curTxt += "0."; // 输入以.开头的数字,则自动补0为“0.”
} else {
curTxt += s;
}
result.setText(curTxt);
if(isNum && !preTxt.equals("")){
preTxt = "";
isNum = false;
}
if(!preOp.equals("")){
memo.setText(preOp);
}
}
public void disCurtxt(String s) { // 显示当前操作数
preOp = s;
preTxt = "";
memo.setText(curTxt);
result.setText("");
}
public void doCls() { // 清屏
preTxt = "";
curTxt = "";
preOp = "";
isFloat = false;
isNum = false;
isDec = false;
result.setText("");
memo.setText("");
}
public void doCalcul() { // 运算
if(isFloat){ // 浮点数运算
double number1, number2;
number1 = Double.parseDouble(preTxt);
number2 = Double.parseDouble(curTxt);
if(preOp.equals("+")){
number1 += number2;
}
else if(preOp.equals("-")){
number1 -= number2;
}
else if(preOp.equals("*")){
number1 *= number2;
}
else if(preOp.equals("/")){
if(number2 == 0){
preTxt = "除数不能为零";
memo.setText("");
result.setText(preTxt);
curTxt = "";
preTxt = "";
isFloat = false;
preOp = "";
return ;
}
number1 /= number2;
}
preTxt = String.valueOf(number1);
} else{ // 整型数运算
long number1, number2;
number1 = Long.parseLong(preTxt);
number2 = Long.parseLong(curTxt);
if(preOp.equals("+")){
number1 += number2;
}
else if(preOp.equals("-")){
number1 -= number2;
}
else if(preOp.equals("*")){
number1 *= number2;
}
else if(preOp.equals("/")){
if(number2 == 0){
preTxt = "除数不能为零";
memo.setText("");
result.setText(preTxt);
curTxt = "";
preTxt = "";
isFloat = false;
preOp = "";
return ;
}
if((number1/number2)*number2 == number1){
number1 /= number2;
preTxt = String.valueOf(number1);
}
else{
preTxt = String.valueOf((number1*1.0)/number2);
isFloat = true;
}
return ;
}
preTxt = String.valueOf(number1);
}
}
}