📄 计算器五.txt
字号:
myapp.java
/****** 本软件支持整型运算,实型运算,整型实型混合运算
及连续运算,是一款功能较强的计算器*******/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class myapp extends jframe//定义主类 myapp
implements actionlistener//接口继承 常用事件处理
{
jbutton button_add=new jbutton("+"); //定义按钮“+”
jbutton button_del=new jbutton("-"); //定义按钮"-"
jbutton button_div=new jbutton("/"); //定义按钮"/"
jbutton button_mul=new jbutton("*"); //定义按钮"*"
jbutton button_equ=new jbutton("="); //定义按钮"="
jtextfield textfield=new jtextfield(10);//创建输入单行文本区域对象
jpanel panel=new jpanel();
float left,right,result; //保存数值
int type;//运算类型标示
int temp;
//super("原始野人计算器");
public void actionperformed(actionevent e)//对用户输入做出响应
{
if(e.getsource()==button_add)
{
left=float.parsefloat(textfield.gettext()); //保存第一操作数
textfield.settext("");//窗口内容重填
type=1;
}
if(e.getsource()==button_equ)
{
switch(type)
{
case 1:
right=float.parsefloat(textfield.gettext());//保存第二操作数
result=left+right; //计算结果
temp=(int)result;
if((float)temp==result)
textfield.settext(integer.tostring(temp));
else
textfield.settext(float.tostring(result));//输出结果
break;
case 2:
right=float.parsefloat(textfield.gettext());//保存第二操作数
result=left-right; //计算结果
temp=(int)result;
if((float)temp==result)
textfield.settext(integer.tostring(temp));
else
textfield.settext(float.tostring(result));//输出结果
break;
case 3:
right=float.parsefloat(textfield.gettext());//保存第二操作数
result=left*right; //计算结果
temp=(int)result;
if((float)temp==result) //判断浮点数是否可以直接转换为整形数
textfield.settext(integer.tostring(temp));
else
textfield.settext(float.tostring(result));//输出结果
break;
case 4:
right=float.parsefloat(textfield.gettext());//保存第二操作数
result=left/right; //计算结果
temp=(int)result;
if((float)temp==result)
textfield.settext(integer.tostring(temp));
else
textfield.settext(float.tostring(result));//输出结果
break;
}
}
if(e.getsource()==button_del)
{
left=float.parsefloat(textfield.gettext()); //保存第一操作数
textfield.settext("");//窗口内容重填
type=2;
}
if(e.getsource()==button_mul)
{
left=float.parsefloat(textfield.gettext()); //保存第一操作数
textfield.settext("");//窗口内容重填
type=3;
}
if(e.getsource()==button_div)
{
left=float.parsefloat(textfield.gettext()); //保存第一操作数
textfield.settext("");//窗口内容重填
type=4;
}
}
public myapp()//对对象初始化
{
super("原始野人计算器");
this.addwindowlistener (new windowadapter(){
public void windowclosing(windowevent e){
dispose();
system.exit(0);
}
});
button_add.addactionlistener(this);//事件监听
button_del.addactionlistener(this);//事件监听
button_div.addactionlistener(this);//事件监听
button_mul.addactionlistener(this);//事件监听
panel.setlayout(new flowlayout());//流水式布局风格
panel.add(button_add);//将button_add加入窗口
panel.add(button_del);//将button_del加入窗口
panel.add(button_div);//将button_div加入窗口
panel.add(button_mul);//将button_mut加入窗口
button_equ.addactionlistener(this);//事件监听
panel.add(button_equ);//将button_equ加入窗口
panel.add(textfield);//将textfield加入窗口
getcontentpane().add(panel);//将panel加入窗口
}
public static void main(string args[])//定义主类中的main方法
{
system.out.println("starting app");
myapp f = new myapp();
f.setsize(650,150);
f.show();
}
}
发表者:virgin_killer
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class calculator extends jframe implements actionlistener{
boolean operapressed = false;
boolean numberpressed = true;
boolean equalpressed = false;
int singlenumber;
string displaystring = "";
int dotfactorial;
char operator;
boolean dotpressed = false;
float tempnumber;
float numafteroperpressed;
float numbercalculated;
float numberstored; // store the number wihc maybe used later
private jbutton sqrt;
private jbutton divide;
private jbutton mem; // store the number which may be used later
private jbutton gem; // get the number which has been stroed
private jbutton clear; // reset the caculator,
private jbutton seven7;
private jbutton eight8;
private jbutton nine9;
private jbutton plus;
private jbutton four4;
private jbutton five5;
private jbutton six6;
private jbutton multiply;
private jbutton one1;
private jbutton two2;
private jbutton three3;
private jbutton minus;
private jbutton zero0;
private jbutton dot;
private jbutton equals;
private jbutton plus1;
private jpanel toppanel;
private jpanel backpanel;
private jtextfield display;
public calculator()
{
toppanel = new jpanel();
toppanel.setlayout(new gridlayout(5,4));
sqrt = new jbutton("sqrt");
toppanel.add(sqrt);
mem = new jbutton("mem");
toppanel.add(mem);
gem = new jbutton("gem");
toppanel.add(gem);
clear = new jbutton("c");
toppanel.add(clear);
seven7 = new jbutton("7");
toppanel.add(seven7);
eight8 = new jbutton("8");
toppanel.add(eight8);
nine9 = new jbutton("9");
toppanel.add(nine9);
plus = new jbutton ("+");
toppanel.add(plus);
four4 = new jbutton("4");
toppanel.add(four4);
five5 = new jbutton("5");
toppanel.add(five5);
six6 = new jbutton ("6");
toppanel.add(six6);
multiply = new jbutton("*");
toppanel.add(multiply);
one1 = new jbutton("1");
toppanel.add(one1);
two2 = new jbutton("2");
toppanel.add(two2);
three3 = new jbutton("3");
toppanel.add(three3);
minus = new jbutton("-");
toppanel.add(minus);
zero0 = new jbutton("0");
toppanel.add(zero0);
dot = new jbutton(".");
toppanel.add(dot);
equals = new jbutton("=");
toppanel.add(equals);
divide = new jbutton("/");
toppanel.add(divide);
display = new jtextfield(20);
backpanel = new jpanel();
backpanel.setlayout(new borderlayout());
backpanel.setbackground(color.red);
backpanel.add(display,borderlayout.north);
backpanel.add(toppanel,borderlayout.center);
getcontentpane().add(backpanel);
settitle("calculator");
setsize(300,300);
setlocation(400,400);
pack();
setvisible(true);
setdefaultcloseoperation(windowconstants.exit_on_close);
nine9.addactionlistener(this);
eight8.addactionlistener(this);
seven7.addactionlistener(this);
six6.addactionlistener(this);
five5.addactionlistener(this);
four4.addactionlistener(this);
three3.addactionlistener(this);
two2.addactionlistener(this);
one1.addactionlistener(this);
zero0.addactionlistener(this);
clear.addactionlistener(this);
dot.addactionlistener(this);
plus.addactionlistener(this);
minus.addactionlistener(this);
multiply.addactionlistener(this);
divide.addactionlistener(this);
equals.addactionlistener(this);
sqrt.addactionlistener(this);
mem.addactionlistener(this);
gem.addactionlistener(this);
clear.addactionlistener(this);
}
public void actionperformed(actionevent e)
{
object getsource = e.getsource();
if( getsource == nine9 )
{
actionafterpressnum(9);
}
if( getsource == eight8 )
{
actionafterpressnum(8);
}
if( getsource == seven7 )
{
actionafterpressnum(7);
}
if( getsource == six6 )
{
actionafterpressnum(6);
}
if( getsource == five5 )
{
actionafterpressnum(5);
}
if( getsource == four4 )
{
actionafterpressnum(4);
}
if( getsource == three3 )
{
actionafterpressnum(3);
}
if( getsource == two2 )
{
actionafterpressnum(2);
}
if( getsource == one1 )
{
actionafterpressnum(1);
}
if( getsource == zero0 )
{
actionafterpressnum(0);
}
if( getsource == plus )
{
display.settext("加上");
if(operapressed)
calculataction();
else if (!equalpressed)
numbercalculated = tempnumber;
else
tempnumber = numbercalculated;
operator = + ;
operapressed = true;
numberpressed = false;
tempnumber = 0;
dotfactorial = 0;
}
发表者:virgin_killer
else if ( getsource == minus )
{
display.settext("减去");
if(operapressed)
calculataction();
else if (!equalpressed)
numbercalculated = tempnumber;
else
tempnumber = numbercalculated;
operator = - ;
operapressed = true;
numberpressed = false;
tempnumber = 0;
dotfactorial = 0;
}
else if( getsource == multiply )
{
display.settext("乘以");
if(operapressed)
calculataction();
else if (!equalpressed)
numbercalculated = tempnumber;
else
tempnumber = numbercalculated;
operator = * ;
operapressed = true;
numberpressed = false;
tempnumber = 0;
dotfactorial = 0;
}
else if( getsource == divide )
{
display.settext("除以");
if(operapressed)
calculataction();
else if (!equalpressed)
numbercalculated = tempnumber;
else
tempnumber = numbercalculated;
operator = / ;
operapressed = true;
numberpressed = false;
tempnumber = 0;
dotfactorial = 0;
}
else if( getsource == sqrt )
{
display.settext("开方");
if(operapressed)
calculataction();
if(!operapressed && !equalpressed)
numbercalculated = tempnumber ;
operator = s ;
operapressed = true;
numberpressed = false;
tempnumber = 0;
dotfactorial = 0;
}
else if( getsource == equals )
{
calculataction();
display.settext(""+numbercalculated);
equalpressed = true;
numberpressed = false;
operapressed = false;
tempnumber = 0f;
dotfactorial = 0;
}
else if( getsource == mem )
{
display.settext("保存这个数");
numberstored = numbercalculated;
operapressed = false;
numberpressed = true;
equalpressed = false;
displaystring = " ";
operator = ;
dotpressed = false;
tempnumber = 0;
numbercalculated = 0;
numafteroperpressed = 0;
dotfactorial = 0;
}
else if( getsource == gem )
{
display.settext("取出保存的数");
tempnumber = numberstored;
}
else if( getsource == clear )
{
operapressed = false;
numberpressed = true;
equalpressed = false;
displaystring = " ";
display.settext("0");
operator = ;
dotpressed = false;
tempnumber = 0;
numbercalculated = 0;
numafteroperpressed = 0;
dotfactorial = 0;
}
else if( getsource == dot )
{
dotpressed = true;
displaystring += .;
display.settext(displaystring);
}
}
public void calculataction()
{
switch(operator)
{
case + :
numbercalculated = numbercalculated + tempnumber;
break;
case - :
numbercalculated = numbercalculated - tempnumber;
break;
case * :
numbercalculated = numbercalculated * tempnumber;
break;
case / :
numbercalculated = numbercalculated / tempnumber;
break;
case s :
numbercalculated = (float) math.sqrt(numbercalculated);
}
}
void actionafterpressnum (int i)
{
if(numberpressed)
{
displaystring += i;
display.settext(displaystring);
}
else
{
displaystring = integer.tostring(i);
display.settext("" + i);
}
if (dotpressed && numberpressed)
{
tempnumber += i*math.pow(10,-(++dotfactorial));
}
else
tempnumber = tempnumber*10 + i;
numberpressed = true;
}
public static void main(string args[])
{
calculator cal = new calculator();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -