使用NetBeans设计一个计算器这不是一个难事,但是NetBeans使用起来觉得不怎么好用,比起做web界面的Dreamweaver起来,并不觉得好用。
做了一个计算器,只能实现最基本的功能,再写复杂的功能的时候,发现好难,实现了一个功能,就有可能会造成其他功能逻辑上的错误。真如老师所说,水很深。
再NetBeans中加入背景图片,并且不会遮挡到前面的控件,这个功能的实现很麻烦,不是改动background就行。
1.要在jframe中加入分层窗体
2.分层窗体中加入两个panel面板
3.在下层的窗体中加入label,label的icon中加入图片
4.两个panel面板的opaque属性为空
就可以了。
可以实现最基本的加减乘除混合运算
//使用Java script类
ScriptEngineManager manager = newScriptEngineManager();
ScriptEngine se = manager.getEngineByName("js");
Double result = null;
try {
result =(Double)se.eval("("+resultTxt.getText()+")*1.0");
} catch (ScriptException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
resultTxt.setText(result.toString());
和退格删除功能
String str = resultTxt.getText();
StringBuffer strbuff = new StringBuffer(str);
//如果字符少于两个,退格删除显示为0
if(str.length()<2){
resultTxt.setText("0");
//多余两个删除一个字符
}else{
strbuff.deleteCharAt(str.length()-1);
resultTxt.setText(strbuff.toString());
}
清除功能。
//文本字段中显示为0
String str2 = resultTxt.getText();
str2=("0");
resultTxt.setText(str2);
使运算符号不重复输入
public void setNum1(String str){
//定义字符串,字符串等于文本字段中的字符
String strText = resultTxt.getText();
int lastRight = strText.length() -1;
char ch =strText.charAt(lastRight);
//如果最右为+,-,*,/,.,显示原来的字符串
if(ch=='+'||ch=='-'||ch=='*'||ch=='/'||ch=='.'){
String strRusult = strText.substring(0,lastRight);
resultTxt.setText(strText);
//否则显示原有的加新输入
}else{
resultTxt.setText(strText+str);
}
}