导航:首页 > 编程语言 > java计算器小程序

java计算器小程序

发布时间:2022-08-27 07:14:17

Ⅰ 用java编写一个简单的计算器程序

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

public class CalcAppDemo extends Frame{
private TextField t_result;
private Panel p_main; //主面板
private Panel p_num; //数字面板
private Panel p_oper; //操作符面板
private Panel p_show; //显示面板
private Button b_num[]; //数字按钮
private Button b_oper[]; //操作符面板

public CalcAppDemo(String title){
setTitle(title);
t_result = new TextField("0.0", 21);
p_main = new Panel();
p_num = new Panel();
p_oper = new Panel();
p_show = new Panel();
p_main.setLayout(new BorderLayout());
p_num.setLayout(new GridLayout(4, 3, 1, 1));
p_oper.setLayout(new GridLayout(4, 2, 1, 1));

b_num = new Button[12];
for(int i=0; i<9; i++)
{
b_num[i] = new Button(new Integer(i+1).toString());
}
b_num[9] = new Button("0");
b_num[10] = new Button("cls");
b_num[11] = new Button(".");
for(int i=0; i<12; i++)
{
p_num.add(b_num[i]);
}

b_oper = new Button[8];
b_oper[0] = new Button("+");
b_oper[1] = new Button("-");
b_oper[2] = new Button("*");
b_oper[3] = new Button("/");
b_oper[4] = new Button("pow");
b_oper[5] = new Button("sqrt");
b_oper[6] = new Button("+/-");
b_oper[7] = new Button("=");
for(int i=0; i<8; i++) //
{
p_oper.add(b_oper[i]);
}

t_result.setEditable(false);
p_show.add(t_result, BorderLayout.NORTH);
p_main.add(p_show, BorderLayout.NORTH);
p_main.add(p_num, BorderLayout.WEST);
p_main.add(p_oper, BorderLayout.EAST);
this.add(p_main, BorderLayout.CENTER);
setSize(400, 400);
setResizable(false);
pack();

this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
ButtonListener b1 = new ButtonListener();
for(int i=0; i<12; i++)
{
b_num[i].addActionListener(b1);
}
for(int i=0; i<8; i++)
{
b_oper[i].addActionListener(b1);
}
}

class ButtonListener implements ActionListener
{
private String lastOp; //存储上一此操作符
private String strVal; //存储数字对应的字符串
private double total; //总数
private double number; //存储新输入的数
private boolean firsttime; //判断是否第一次按下的是操作符按钮
private boolean operatorPressed;//判断是否已经按过操作符按钮

ButtonListener()
{
firsttime = true;
strVal = "";
}

//事件处理器
public void actionPerformed(ActionEvent e)
{
String s = ((Button)e.getSource()).getLabel().trim();

if(Character.isDigit(s.charAt(0)))
{//判断是操作数还是操作符
handleNumber(s);
}
else
{
calculate(s);
}
}

//判断是一元操作符还是二元操作符,并根据操作符类型做计算
void calculate(String op)
{
operatorPressed = true;

if(firsttime&&! isUnary(op))
{
total = getNumberOnDisplay();
firsttime = false;
}
if(isUnary(op))
{
handleUnaryOp(op);
}
else if(lastOp != null)
{
handleBinaryOp(lastOp);
}
if(! isUnary(op))
{
lastOp = op;
}
}

//判断是否一元操作符
boolean isUnary(String s)
{
return s.equals("=")
||s.equals("cls")||s.equals("sqrt")
||s.equals("+/-")||s.equals(".");
}

//处理一元操作符
void handleUnaryOp(String op)
{
if(op.equals("+/-"))
{//
number = negate(getNumberOnDisplay() + "");
t_result.setText("");
t_result.setText(number + "");
return;
}else if(op.equals("."))
{
handleDecPoint();
return;
}else if(op.equals("sqrt"))
{
number = Math.sqrt(getNumberOnDisplay());
t_result.setText("");
t_result.setText(number + "");
return;
}else if(op.equals("="))
{//
if(lastOp!= null && !isUnary(lastOp))
{
handleBinaryOp(lastOp);
}
lastOp = null;
firsttime = true;
return;
}else
{
clear();
}
}

//处理二元运算符
void handleBinaryOp(String op)
{
if(op.equals("+"))
{
total +=number;
}else if(op.equals("-"))
{
total -=number;
}else if(op.equals("*"))
{
total *=number;
}else if(op.equals("/"))
{
try
{
total /=number;
}catch(ArithmeticException ae){}
}else if(op.equals("pow"))
total = Math.pow(total, number);
//t_result.setText("");
lastOp = null;
// strVal = "";
number = 0;
t_result.setText(total + "");
}

//该方法用于处理数字按钮
void handleNumber(String s)
{
if(!operatorPressed)
{
strVal += s;
}else
{
operatorPressed = false;
strVal = s;
}
//
number = new Double(strVal).doubleValue();
t_result.setText("");
t_result.setText(strVal);
}

//该方法用于按下"."按钮
void handleDecPoint()
{
operatorPressed = false;
//
if(strVal.indexOf(".")<0)
{
strVal += ".";
}
t_result.setText("");
t_result.setText(strVal);
}

//该方法用于将一个数求反
double negate(String s)
{
operatorPressed = false;
//如果是一个整数,去掉小数点后面的0
if(number == (int)number)
{
s = s.substring(0,s.indexOf("."));
}

//如果无"-"增加在该数的前面
if(s.indexOf("-")<0)
{
strVal = "-" + s;
}
else
{
strVal = s.substring(1);
}
return new Double(strVal).doubleValue();
}

//将显示框中的值转换成Double
double getNumberOnDisplay()
{
return new Double(t_result.getText()).doubleValue();
}

//清除屏幕并设置所有的标识
void clear()
{
firsttime = true;
lastOp = null;
strVal = "";
total = 0;
number = 0;
t_result.setText("0");
}
}

public static void main(String[] args) {
CalcAppDemo c = new CalcAppDemo("简单的计算器程序");
c.setVisible(true);
}

}

Ⅱ java简单计算器程序

importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;

{
privateJTextFieldtext_operate1,text_operate2,text_result;
privateButtonbutton_add,button_minus,button_multiply,button_divide;

publicCaculator(){
super("计算器");
this.setBounds(300,300,560,180);//30030056090
this.setResizable(true);//setReaizable
this.setBackground(java.awt.Color.lightGray);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(newGridLayout(3,3,5,5));//GidLayout
this.getContentPane().add(newJLabel("操作数"));
text_operate1=newJTextField(5);
this.getContentPane().add(text_operate1);
this.getContentPane().add(newJLabel("操作数"));
text_operate2=newJTextField(5);
this.getContentPane().add(text_operate2);
button_add=newButton("+");
this.getContentPane().add(button_add);
button_add.addActionListener(this);//addCaretListener
button_minus=newButton("-");
this.getContentPane().add(button_minus);
button_minus.addActionListener(this);
button_multiply=newButton("x");
this.getContentPane().add(button_multiply);
button_multiply.addActionListener(this);
button_divide=newButton("/");
this.getContentPane().add(button_divide);//getContentPane
button_divide.addActionListener(this);
this.getContentPane().add(newJLabel("结果"));
text_result=newJTextField(10);
text_result.setHorizontalAlignment(JTextField.RIGHT);//setHororizontalAlignment
text_result.setEditable(false);
this.getContentPane().add(text_result);
this.setVisible(true);//setVisable
//actionPerformed(null);
}

publicvoidactionPerformed(ActionEventev)//publicint
{
if(ev.getSource()==button_add){
Stringstr=text_operate1.getText();
Stringstr1=text_operate2.getText();
intuni=Integer.parseInt(str);
intuni1=Integer.parseInt(str1);
//inttext_result=uni+uni1;
//returntext_result;
text_result.setText((uni+uni1)+"");

}elseif(ev.getSource()==button_minus){
Stringstr=text_operate1.getText();
Stringstr1=text_operate2.getText();
intuni=Integer.parseInt(str);
intuni1=Integer.parseInt(str1);
//inttext_result=uni-uni1;
//returntext_result;
text_result.setText((uni-uni1)+"");
}elseif(ev.getSource()==button_multiply){
Stringstr=text_operate1.getText();
Stringstr1=text_operate2.getText();
intuni=Integer.parseInt(str);
intuni1=Integer.parseInt(str1);
//inttext_result=uni*uni1;
//returntext_result;
text_result.setText((uni*uni1)+"");
}elseif(ev.getSource()==button_divide){
Stringstr=text_operate1.getText();
Stringstr1=text_operate2.getText();
intuni=Integer.parseInt(str);
intuni1=Integer.parseInt(str1);
//inttext_result=uni/uni1;
//returntext_result;
text_result.setText(uni/uni1+"");
}
}

publicstaticvoidmain(Stringargs[]){
newCaculator();
}
}

Ⅲ 一个JAVA小程序,计算器的

text.setEditable(false);// 得写到方法体中去,单独是不能存在的,你看来是写得头晕了哈
第二个类那样是用不了text.setText();的
没有这个对象,你把它们写到同一个类中去就没问题了。
非要这么写,那你得再写个方法将text对象传递出来在第二个类中获取来使用……

你写得有点儿乱,我也不知道怎么改了!写一个太花时间,我这边给你一个吧!

你说按钮距离那就是你布局没有处理好!建议直接像下面给出的程序那样!也简单

出了问题了不怕,问题越多进步越快哈

有问题你可以加这个群进行提问:5358308,java world!(two)

给你一个计算器程序

//第一个类是GUI,两个类放两文件里去
import javax.swing.*;
import java.awt.Container;
import java.awt.event.*;

public class Calculate_GUI extends JFrame{
private JPanel p1;
private JButton keyButton[]=new JButton[16],signButton,clearButton,deleteButton;
private JTextField outputField;
private Container contentPane;
private boolean firstInput=true;
private Calculate_Model model=new Calculate_Model();

public Calculate_GUI(){
p1=new JPanel();
keyButton[0]=new JButton("1"); //创建各个按钮
keyButton[1]=new JButton("2");
keyButton[2]=new JButton("3");
keyButton[3]=new JButton("/");
keyButton[4]=new JButton("4");
keyButton[5]=new JButton("5");
keyButton[6]=new JButton("6");
keyButton[7]=new JButton("*");
keyButton[8]=new JButton("7");
keyButton[9]=new JButton("8");
keyButton[10]=new JButton("9");
keyButton[11]=new JButton("-");
keyButton[12]=new JButton("0");
keyButton[13]=new JButton(".");
keyButton[14]=new JButton("=");
keyButton[15]=new JButton("+");
clearButton=new JButton("c");
signButton=new JButton("+/-");
deleteButton=new JButton("←");
outputField=new JTextField(); //它允许编辑单行文本
outputField.setText("0");
outputField.setEditable(false); //指示此 TextComponent 是否应该为可编辑的
contentPane=this.getContentPane(); //返回此窗体的 contentPane 对象;

this.setSize(250,250);
p1.setLayout(new java.awt.GridLayout(4,5)); //创建具有4行5列的布局

for(int i=0;i<keyButton.length;i++) //在容器中画上按钮
{
if(i==4) p1.add(deleteButton);
if(i==8) p1.add(clearButton);
if(i==12) p1.add(signButton);
keyButton[i].setFont(new java.awt.Font("Dialog",3,15));//设置字体Dialog字体名,样式,大小
p1.add(keyButton[i]);
}

contentPane.add(outputField,java.awt.BorderLayout.NORTH);
contentPane.add(p1,java.awt.BorderLayout.CENTER);
this.show();
} //用于显示界面

public void registEvent() //注册各个事件
{
this.addWindowListener(new WindowAdapter() //窗口事件,窗口关闭里程序关闭
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
});

for(int i=0;i<keyButton.length;i++)
{
keyButton[i].addActionListener(new keyButtonHandler()); //为每一个按钮添加监听器
}

signButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
outputField.setText(String.valueOf(model.toSign(Double.parseDouble(outputField.getText()))));
}
});

deleteButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
outputField.setText(model.backSpace(outputField.getText()));
if(outputField.getText().equals("0"))
firstInput=true;
}
});

clearButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
firstInput=true;
outputField.setText("0");
model.reset();
}
});
}

class keyButtonHandler implements ActionListener
{
public void actionPerformed(ActionEvent ae)
{
char actionCommand=ae.getActionCommand().charAt(0);

switch(actionCommand)
{
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case '0':
case '.':

if(firstInput) //是否为首次输入
{
outputField.setText(String.valueOf(actionCommand));
firstInput=false;
}

else
outputField.setText(outputField.getText()+actionCommand);
break;

case '+':
case '-':
case '*':
case '/':

if(firstInput)
model.setOperate(actionCommand);
else
{
model.setOperateNumber(Double.parseDouble(outputField.getText()));
model.calculating();
model.setOperate(actionCommand);
outputField.setText(String.valueOf(model.getResult()));
firstInput=true;
}

break;

case '=':

if(firstInput)
{
model.calculating();
outputField.setText(String.valueOf(model.getResult()));
}
else
{
model.setOperateNumber(Double.parseDouble(outputField.getText()));
model.calculating();
outputField.setText(String.valueOf(model.getResult()));
firstInput=true;
}
}
}
}

public static void main(String args[])
{
new Calculate_GUI().registEvent();
}
}

/******************************************
*****计算的模块****************************/
public class Calculate_Model
{
private double result;
private double operateNumber;
private char operate;

public Calculate_Model() //构造方法进行初始化
{
result=0; //结果
operateNumber=0; //操作数
operate=' '; //操作符
}

public void setResult(double n) //设置结果,成员变量result是private的
{
result=n;
}

public void setOperate(char o) //设置操作符
{
operate=o;
}

public void setOperateNumber(double n) //设置操作数
{
operateNumber=n;
}

public double getResult() //获取结果
{
return result;
}

public void calculating() //计算过程
{
switch(operate)
{
case ' ':result=operateNumber;break; //分别对操作判断后进行相应操作
case '+':result+=operateNumber;break;
case '-':result-=operateNumber;break;
case '*':result*=operateNumber;break;
case '/':result/=operateNumber;break;
}
}

public void reset() //重设方法
{
result=0;
operateNumber=0;
operate=' ';
}

public double toSign(double n) //正负转化
{
return 0-(n-0);
}

public String backSpace(String n) //对backSpace设置
{
String reResult="0";
try
{
reResult=n.substring(0,n.length()-1); //从第一个开始取前n-1个
Double.parseDouble(reResult); //将其转化为Double型
}
catch(NumberFormatException e)
{
reResult="0";
}

return reResult;
}

}

Ⅳ 如何用JAVA语言编写计算器小程序

具体代码如下:

import javax.swing.*;

import java.awt.event.*;

import java.awt.*;

public class Calculator extends JFrame implements ActionListener {

private JFrame jf;

private JButton[] allButtons;

private JButton clearButton;

private JTextField jtf;

public Calculator() {

//对图形组件实例化

jf=new JFrame("任静的计算器1.0:JAVA版");

jf.addWindowListener(new WindowAdapter(){

public void windowClosing(){

System.exit(0);

}

});

allButtons=new JButton[16];

clearButton=new JButton("清除");

jtf=new JTextField(25);

jtf.setEditable(false);

String str="123+456-789*0.=/";

for(int i=0;i<allButtons.length;i++){

allButtons[i]=new JButton(str.substring(i,i+1));

}

}

public void init(){

//完成布局

jf.setLayout(new BorderLayout());

JPanel northPanel=new JPanel();

JPanel centerPanel=new JPanel();

JPanel southPanel=new JPanel();

northPanel.setLayout(new FlowLayout());

centerPanel.setLayout(new GridLayout(4,4));

southPanel.setLayout(new FlowLayout());

northPanel.add(jtf);

for(int i=0;i<16;i++){

centerPanel.add(allButtons[i]);

}

southPanel.add(clearButton);

jf.add(northPanel,BorderLayout.NORTH);

jf.add(centerPanel,BorderLayout.CENTER);

jf.add(southPanel,BorderLayout.SOUTH);

addEventHandler();

}

//添加事件监听

public void addEventHandler(){

jtf.addActionListener(this);

for(int i=0;i<allButtons.length;i++){

allButtons[i].addActionListener(this);

}

clearButton.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

Calculator.this.jtf.setText("");

}

});

}

//事件处理

public void actionPerformed(ActionEvent e) {

//在这里完成事件处理 使计算器可以运行

String action=e.getActionCommand();

if(action=="+"||action=="-"||action=="*"||action=="/"){

}

}

public void setFontAndColor(){

Font f=new Font("宋体",Font.BOLD,24);

jtf.setFont(f);

jtf.setBackground(new Color(0x8f,0xa0,0xfb));

for(int i=0;i<16;i++){

allButtons[i].setFont(f);

allButtons[i].setForeground(Color.RED);

}

}

public void showMe(){

init();

setFontAndColor();

jf.pack();

jf.setVisible(true);

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args){

new Calculator().showMe();

}

}

Ⅳ JAVA计算器小程序

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.*;
import javax.swing.*;
import java.util.*;

public class CalculatorA {
private JFrame jf;
private JButton[] jbs;
private JTextField jtf;
private JButton clear;
private double num1,num2,jieguo;
private char c;
/**
* 构造方法实例化属性
*
*/
public CalculatorA(){
jf=new JFrame("我的计算器v1.0");
jtf=new JTextField(20);
clear=new JButton("clear");
jbs=new JButton[16];
String str="123+456-789*0./=";
for(int i=0; i<str.length(); i++){
jbs[i]=new JButton(str.charAt(i)+"");
}
init();
addEventHandler();
// setFont();
// setColor();
showMe();
}

/**
* 布局图形界面
*
*/
public void init(){
// jf.setLayout(manager)
JPanel jp1=new JPanel();
jp1.add(jtf);

JPanel jp2=new JPanel();
jp2.setLayout(new GridLayout(4,4));
for(int i=0; i<16; i++){
jp2.add(jbs[i]);
}
JPanel jp3=new JPanel();
jp3.add(clear);
jf.add(jp1,BorderLayout.NORTH);
jf.add(jp2,BorderLayout.CENTER);
jf.add(jp3,BorderLayout.SOUTH);
}

public void setFont(){

}

public void setColor(){

}
public void addEventHandler(){
ActionListener lis=new ActionListener(){

public void actionPerformed(ActionEvent e){
// TODO Auto-generated method stub
JButton jb=(JButton)e.getSource();
// String key=(String)e.getActionCommand();
String str =jb.getText().trim();//把字符串的首尾空格去掉!
// String str2=e.getActionCommand().trim();//返回事件源的文本内容
if("0123456789.".indexOf(str)!=-1){//如果是数字或点号
jtf.setText(jtf.getText()+str);
return;
}
if("+-*/".indexOf(str)!=-1){
num1=Double.parseDouble(jtf.getText());

jtf.setText("");
c=str.charAt(0);
jtf.setText("");
return ;
}
if(str.equals("=")){
num2=Double.parseDouble(jtf.getText());
// jtf.setText("");
switch(c){
case '+': jieguo=num1+num2;break;
case '-': jieguo=num1-num2;break;
case '*': jieguo=num1*num2; break;
case '/': jieguo=num1/num2;break;
}
jtf.setText(Double.toString(jieguo));
return;
}

if(e.getActionCommand().equals("clear")){

jtf.setText("");
return;
}
}
};
for(int i=0; i<jbs.length; i++){

jbs[i].addActionListener(lis);
}
clear.addActionListener(lis);
}

public void showMe(){
jf.pack();
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
public static void main(String[] args){
new CalculatorA();

}
}

Ⅵ java编写一个小型计算器应用程序

package 计算器;
import java.awt.*;
import java.awt.event.*;

public class computer implements WindowListener,ActionListener{

private Frame f;
double d0,d1,d2,result;
boolean flag=true;
String s,oper;
TextField tf1;
Panel p=new Panel();

public static void main(String args[])
{ computer e=new computer();
e.go();
}

public void go(){
int i;
result=0;
s=new String();
oper=new String("+");
f=new Frame("计算器");
MenuBar mb=new MenuBar();
f.setMenuBar(mb);
Menu m1=new Menu("编辑");
Menu m2=new Menu("帮助");
Menu m3=new Menu("关于");
mb.add(m1);
mb.add(m3);
mb.setHelpMenu(m2);
tf1=new TextField("",15);
Button[] b=new Button[21];
for(i=1;i<21;i++)
{
b[i]=new Button();
b[i].setFont(new Font("仿宋",0,16));
}
b[1].setLabel("退格");
b[2].setLabel("CE");
b[3].setLabel("C");
b[4].setLabel("/");
b[5].setLabel("7");
b[6].setLabel("8");
b[7].setLabel("9");
b[8].setLabel("*");
b[9].setLabel("4");
b[10].setLabel("5");
b[11].setLabel("6");
b[12].setLabel("-");
b[13].setLabel("1");
b[14].setLabel("2");
b[15].setLabel("3");
b[16].setLabel("+");
b[17].setLabel("0");
b[18].setLabel("+/-");
b[19].setLabel(".");
b[20].setLabel("=");
p.setLayout(new GridLayout(5,4));
p.setBackground(new Color(80,30,100));
for(i=1;i<21;i++)
{ p.add(b[i]);
b[i].addActionListener(this);
b[i].setBackground(new Color(20,130,180));
b[i].setForeground(Color.yellow);
}
for(i=1;i<4;i++)
{
b[i].setBackground(new Color(120,180,170));
b[i].setForeground(Color.blue);
}
for(i=1;i<=4;i++)
{ b[i*4].setBackground(new Color(120,180,170));
b[i*4].setForeground(Color.red);
}
b[20].setBackground(Color.red);
f.addWindowListener(this);
f.setLayout(new BorderLayout());
f.add("North",tf1);
f.add("Center",p);
f.setSize(200,200);
f.setVisible(true);
}

public void windowClosing(WindowEvent e){System.exit(1);}
public void windowOpened(WindowEvent e){}
public void windowIconified(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}
public void windowClosed(WindowEvent e){}
public void windowActivated(WindowEvent e){}
public void windowDeactivated(WindowEvent e){}

public void actionPerformed(ActionEvent e){
String i1=tf1.getText();
s=e.getActionCommand();
if(s=="0"| s=="1"|s=="2"|s=="3"|s=="4"|s=="5"|s=="6"|s=="7"|s=="8"|s=="9"|s==".")
{ if(flag) tf1.setText(i1+s);
else
{ tf1.setText(s);
flag=true;
}
}
else if(s=="+"|s=="-"|s=="*"|s=="/")
{ result=Double.parseDouble(i1);
flag=false;
oper=s;
}
else if(s=="=")
{ d0=Double.parseDouble(i1);
if(oper=="+") result+=d0;
if(oper=="-") result-=d0;
if(oper=="*") result*=d0;
if(oper=="/") result/=d0;
tf1.setText(Double.toString(result));
flag=false;
}
else if(s=="CE")
{ tf1.setText("");
flag=false;
}
else if(s=="C")
{ result=0;
tf1.setText("");
flag=false;
}
else if(s=="退格")
{ String ss=tf1.getText();
int i=ss.length();
ss=ss.substring(0,i-1);
tf1.setText(ss);
}
else if(s=="+/-")
{ d2=-1*Double.parseDouble(tf1.getText());
tf1.setText(Double.toString(d2));
}
}
}

绝对能运行

Ⅶ 求java编写的租金计算器小程序

importjava.awt.Container;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.FocusAdapter;
importjava.awt.event.FocusEvent;
importjava.sql.Date;
importjava.util.Calendar;

importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JTextField;

publicclassZuJinextendsJFrame{
/**
*(结束日期-开始日期)÷30×月租金+业务费用+其他费用=总费用
〔(结束日期-开始日期)÷30×月租金+业务费用+其他费用〕÷合租人员=平均费用
需要弹出一个租金计算器对话框分为租金计算信息与租金计算结果两部分

*/
publicZuJin(){
Containerc=getContentPane();
c.setLayout(newGridLayout(5,4));
JLabelj1=newJLabel("开始日期");
c.add(j1);
JTextFieldjt1=newJTextField(10);
c.add(jt1);
JLabelj2=newJLabel("结束日期");
c.add(j2);
JTextFieldjt2=newJTextField("");
c.add(jt2);
JLabelj3=newJLabel("月租金(元)");
c.add(j3);
JTextFieldjt3=newJTextField(5);
c.add(jt3);
JLabelj4=newJLabel("业务费(元)");
c.add(j4);
JTextFieldjt4=newJTextField(5);
c.add(jt4);
JLabelj5=newJLabel("其他费用(元)");
c.add(j5);
JTextFieldjt5=newJTextField(5);
c.add(jt5);
JLabelj6=newJLabel("合租人员数量");
c.add(j6);
JTextFieldjt6=newJTextField(3);
c.add(jt6);
JLabelj7=newJLabel("总费用(元)");
c.add(j7);
JTextFieldjt7=newJTextField(5);
jt7.setEditable(false);
c.add(jt7);
JLabelj8=newJLabel("平均费用(元)");
c.add(j8);
JTextFieldjt8=newJTextField(5);
jt8.setEditable(false);
c.add(jt8);
JButtonjb1=newJButton("计算");
c.add(jb1);
jt1.addFocusListener(newFocusAdapter()
{
@Override
publicvoidfocusGained(FocusEvente)
{
if(jt1.getText().equals("格式为:0000-00-00")){
jt1.setText("");
}

}

@Override
publicvoidfocusLost(FocusEvente)
{
if(jt1.getText().equals("")){
jt1.setText("格式为:0000-00-00");
}

}

});
jt2.addFocusListener(newFocusAdapter()
{
@Override
publicvoidfocusGained(FocusEvente)
{
if(jt2.getText().equals("格式为:0000-00-00")){
jt2.setText("");
}

}

@Override
publicvoidfocusLost(FocusEvente)
{
if(jt2.getText().equals("")){
jt2.setText("格式为:0000-00-00");
}

}

});
jb1.addActionListener(newActionListener(){

@Override
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
Dated1=Date.valueOf(jt1.getText());//开始日期
Dated2=Date.valueOf(jt2.getText());//结束日期
Calendarc1=Calendar.getInstance();
c1.setTime(d1);
Calendarc2=Calendar.getInstance();
c2.setTime(d2);
intday1=c1.get(Calendar.DAY_OF_YEAR);
intday2=c2.get(Calendar.DAY_OF_YEAR);
intdays=day2-day1;
doublemoney1=Double.valueOf(jt3.getText());//月租金
doublemoney2=Double.valueOf(jt4.getText());//业务费
doublemoney3=Double.valueOf(jt5.getText());//其他费用
intman=Integer.valueOf(jt6.getText());//人数
doublemoney4=days/30*money1+money2+money3;
doublemoney5=0.0;
if(man!=0){
money5=money4/man;
}
else{
money5=money4;
}

jt7.setText(String.valueOf(money4));
jt8.setText(String.valueOf(money5));

}
});

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(400,400,500,300);
setVisible(true);
setTitle("租金计算器");

}
publicstaticvoidmain(String[]args){
ZuJinzj=newZuJin();

}
}

丑是丑了点 用还是可以用的。

Ⅷ java:编写一个计算器小程序,要求可以做加减乘除运算

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener{
private static final long serialVersionUID = 8199443193151152362L;
private JButton bto_s=new JButton("sqrt"),bto_zf=new JButton("+/-"),bto_ce=new JButton("CE"),bto_c=new JButton("C"),bto_7=new JButton("7"),
bto_8=new JButton("8"),bto_9=new JButton("9"),bto_chu=new JButton("/"),bto_4=new JButton("4"),bto_5=new JButton("5"),
bto_6=new JButton("6"),bto_cheng=new JButton("*"),bto_1=new JButton("1"),bto_2=new JButton("2"),bto_3=new JButton("3"),
bto_jian=new JButton("-"),bto_0=new JButton("0"),bto_dian=new JButton("."),bto_deng=new JButton("="),bto_jia=new JButton("+");
JButton button[]={bto_s,bto_zf,bto_ce,bto_c,bto_7,bto_8,bto_9,bto_chu,bto_4,bto_5,bto_6,bto_cheng,bto_1,bto_2,bto_3,bto_jian,
bto_0,bto_dian,bto_deng,bto_jia};
private JTextField text_double;// = new JTextField("0");
private String operator = "="; //当前运算的运算符
private boolean firstDigit = true; // 标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字
private double resultNum = 0.0; // 计算的中间结果
private boolean operateValidFlag = true; //判断操作是否合法
public Calculator()
{
super("Calculator");
this.setBounds(300, 300, 300, 300);
this.setResizable(false);
this.setBackground(Color.orange);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.getContentPane().setLayout(new BorderLayout());//设置布局
text_double=new JTextField("0",20);//设置文本区
text_double.setHorizontalAlignment(JTextField.RIGHT);//设置水平对齐方式未右对齐
this.getContentPane().add(text_double,BorderLayout.NORTH);//将文本区添加到Content北部
JPanel panel=new JPanel(new GridLayout(5,4));//在内容窗口添加一个网格布局
this.getContentPane().add(panel);//添加panel面板
for(int i=0;i<button.length;i++)//在面板上添加按钮
panel.add(button[i]);

for(int i=0;i<button.length;i++)
button[i].addActionListener(this);//为按钮注册
text_double.setEditable(false);//文本框不可编辑
text_double.addActionListener(this);//

this.setVisible(true);
}
public void actionPerformed(ActionEvent e)//
{
String c= e.getActionCommand();//返回与此动作相关的命令字符串。
System.out.println("##########command is "+c);
if(c.equals("C")){
handleC(); //用户按了“C”键
}
else if (c.equals("CE")) // 用户按了"CE"键
{
text_double.setText("0");
}
else if ("0123456789.".indexOf(c) >= 0) // 用户按了数字键或者小数点键
{
handleNumber(c); // handlezero(zero);
} else //用户按了运算符键
{
handleOperator(c);
}
}
private void handleC() // 初始化计算器的各种值
{
text_double.setText("0");
firstDigit = true;
operator = "=";
}
private void handleNumber(String button) {
if (firstDigit)//输入的第一个数字
{
text_double.setText(button);
} else if ((button.equals(".")) && (text_double.getText().indexOf(".") < 0))//输入的是小数点,并且之前没有小数点,则将小数点附在结果文本框的后面
//如果字符串参数作为一个子字符串在此对象中出现,则返回第一个这种子字符串的第一个字符的索引;如果它不作为一个子字符串出现,则返回 -1
{
text_double.setText(text_double.getText() + ".");
} else if (!button.equals("."))// 如果输入的不是小数点,则将数字附在结果文本框的后面
{
text_double.setText(text_double.getText() + button);
}
// 以后输入的肯定不是第一个数字了
firstDigit = false;
}
private void handleOperator(String button) {

if (operator.equals("/")) {
// 除法运算
// 如果当前结果文本框中的值等于0
if (getNumberFromText() == 0.0){
// 操作不合法
operateValidFlag = false;
text_double.setText("除数不能为零");
} else {
resultNum /= getNumberFromText();
}
} else if (operator.equals("+")){
// 加法运算
resultNum += getNumberFromText();
} else if (operator.equals("-")){
// 减法运算
resultNum -= getNumberFromText();
} else if (operator.equals("*")){
// 乘法运算
resultNum *= getNumberFromText();
} else if (operator.equals("sqrt")) {
// 平方根运算
if(getNumberFromText()<0){
operateValidFlag = false;
text_double.setText("被开方数不能为负数");}
else
resultNum = Math.sqrt(resultNum);
}
else if (operator.equals("+/-")){
// 正数负数运算
resultNum = resultNum * (-1);
} else if (operator.equals("=")){
// 赋值运算
resultNum = getNumberFromText();
}
if (operateValidFlag) {
// 双精度浮点数的运算
long t1;
double t2;
t1 = (long) resultNum;
t2 = resultNum - t1;
if (t2 == 0) {
text_double.setText(String.valueOf(t1));
} else {
text_double.setText(String.valueOf(resultNum));
}
}
operator = button; //运算符等于用户按的按钮
firstDigit = true;
operateValidFlag = true;
}
private double getNumberFromText() //从结果的文本框获取数字
{
double result = 0;
try {
result = Double.valueOf(text_double.getText()).doubleValue(); // ValueOf()返回表示指定的 double 值的 Double 实例
} catch (NumberFormatException e){
}
return result;
}
public static void main(final String[] args) {
new Calculator();
}
}

Ⅸ JAVA迷你计算器程序

importjava.awt.Button;
importjava.awt.Event;
importjavax.swing.JFrame;
importjava.applet.Applet;
{
charprevopr;
Stringnum1,num2;
char[]btext={'0','1','2','3','4','5','6','7','8','9','-','+','*','/','='};
Button[]buttons=newButton[btext.length];
publicvoidinit(){
prevopr=0;
num1="";
num2="";
for(inti=0;i<btext.length;i++){
buttons[i]=newButton(""+btext[i]);
add(buttons[i]);
}
}
publicfloatapply(floatnum1,charopr,floatnum2){
switch(opr){
case'+':return(num1+num2);
case'-':return(num1-num2);
case'*':return(num1*num2);
case'/':return(num1/num2);
default:return(num1);
}
}
publicbooleanaction(Eventevt,Objectarg){
charkey=((String)arg).charAt(0);
if(key>='0'&&key<='9'){
showStatus(""+key);
if(prevopr==0){
num1+=""+key;
}else{
num2+=""+key;
}
}elseif(key=='='){
floatans=apply(Float.parseFloat(num1),prevopr,Float.parseFloat(num2));
showStatus(""+ans);
prevopr=0;
num1="";
num2="";
}else{
prevopr=key;
showStatus(""+prevopr);
}
returntrue;
}

//Application时使用方法。applet时,屏蔽此方法
publicvoidshowStatus(Strings){
System.out.println(s);
}
publicstaticvoidmain(Stringargs[]){
Calc10calc=newCalc10();
calc.init();

JFramef=newJFrame("Calc10");
f.setSize(400,500);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(calc);
f.setVisible(true);
}
}

阅读全文

与java计算器小程序相关的资料

热点内容
去哪里找按摩师很漂亮的app 浏览:818
86x99用简便算法计算 浏览:829
php截图flash 浏览:272
卸载联想app哪个好 浏览:719
php文字转图片 浏览:330
豆客后台怎么加密码 浏览:574
jpg转换pdf破解版 浏览:978
php基础书籍推荐 浏览:777
服务器与外网不通如何验证 浏览:351
电子版是不是就是文件夹 浏览:50
游戏属性文件加密 浏览:463
如何让安卓手机桌面图标下移 浏览:529
ubuntuphp5环境搭建 浏览:101
赌瘾解压视频 浏览:917
晋城移动dns服务器地址 浏览:296
php开源文库系统 浏览:136
android记事本源码 浏览:407
安卓11小游戏怎么玩法 浏览:190
gif有损压缩 浏览:937
windows下安装linux命令操作 浏览:844