您的位置:首页 > 编程语言 > Java开发

Java+NetBeans实现简易的计算器

2015-10-06 14:25 751 查看
此计算器能够实现简单的加减乘除运算。

插入图片后的界面:



创建一个方法来获取数字的值:

private void setNum(String str){
//实例化对象,获取文本框中的内容
String strText = new String(jTextField1.getText());
//如果jTextField1的内容等于“0”,则文本框等于输入的内容str
if(strText.equals("0")){
jTextField1.setText(str);
}else{
//否则在原来的内容上追加str
StringBuffer strBuf = new StringBuffer(strText);
strBuf.append(str);
jTextField1.setText(strBuf.toString());
}
}


加减乘除和小数点运算:

注:这里的小数点实现不太合理,但是只要人为输入不错误就能保证小数点的正确实现

private void setPoint(String str){
String strText = jTextField1.getText();
//判断strText中字符串的最右边以为是否为运算符
int lastRight = strText.length()-1;
//获得倒数第二位的字符
char ch = strText.charAt(lastRight);
if(ch == '+' || ch == '_' || ch == '*' || ch == '/' || ch == '.'){
//替换strText最右边的运算符为当前按键str,如“12345” “1234”
String strResult = strText.substring(0, lastRight)+str;
//strResult赋值
jTextField1.setText(strResult);
}else{
//strText追加当前str
jTextField1.setText(strText+str);
}
}



等于功能:

private void equalMouseReleased(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
//引用脚本,調用js中的eavl()方法
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine se = manager.getEngineByName("js");
try {
//把字符串转换为表达式(Double类型)“6+3*3”>- 6+3*3
Double num =(Double)se.eval("("+jTextField1.getText()+")*1.0");
//从文本框中输出结果
jTextField1.setText(num.toString());
} catch (ScriptException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
jTextField1.setText("输入错误,请重新输入");
}
}


退格功能:

private void backspaceMouseReleased(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
String strText = new String(jTextField1.getText());
if(strText.equals("0")){
// jTextField1.setText(str);
}else{
StringBuffer strBuf = new StringBuffer(strText);
//按下标删除每一个字符,直到删除完
strBuf.deleteCharAt(strBuf.length()-1);
jTextField1.setText(strBuf.toString());
//当删除到只剩一位数时自动变“0”
if(strBuf.length()<1){
jTextField1.setText("0");
}
}
}


清零功能:

private void clearMouseReleased(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
String strText = new String(jTextField1.getText());
if(strText.equals("0")){
jTextField1.setText("0");
}else{
jTextField1.setText("0");
}
}


点击按键变色功能:
//鼠标移动到“9”时按钮变为黄色
private void jButton9MouseMoved(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
jButton9.setBackground(Color.YELLOW);
}
//鼠标从数字“9”移开是按钮变回灰色
private void jButton9MouseExited(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
jButton9.setBackground(Color.LIGHT_GRAY);
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: