📄 mframe.java~350~
字号:
contentPane.add(Fen, new XYConstraints(224, 139, 37, 29));
contentPane.add(MS, new XYConstraints(10, 139, 37, 29));
contentPane.add(Six, new XYConstraints(140, 105, 37, 29));
contentPane.add(Jia, new XYConstraints(182, 172, 37, 29));
contentPane.add(Four, new XYConstraints(56, 105, 37, 29));
contentPane.add(Eight, new XYConstraints(98, 72, 37, 29));
contentPane.add(Nine, new XYConstraints(140, 72, 37, 29));
contentPane.add(Chu, new XYConstraints(182, 72, 37, 29));
contentPane.add(Sqrt, new XYConstraints(224, 72, 37, 29));
contentPane.add(C, new XYConstraints(201, 37, 60, 29));
contentPane.add(CE, new XYConstraints(135, 37, 60, 29));
contentPane.add(BaSp, new XYConstraints(57, 37, 72, 29));
contentPane.add(Mshow, new XYConstraints(11, 42, 32, 23));
MainMenu.add(Edit);
MainMenu.add(View);
MainMenu.add(Help);
Edit.add(Copyx);
Edit.add(Pastex);
Help.add(Aboutx);
View.add(Fenzux);
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
void MC_actionPerformed(ActionEvent e) {
if (Lock) {}
else{
Mshow.setText("");
memorys = "";} //清空寄存器
}
void MS_actionPerformed(ActionEvent e) {
if (Lock) {}
else{
Mshow.setText("M");
memorys = Text.getText();} //获取Text内容
}
void MJ_actionPerformed(ActionEvent e) {
if (Lock) {}
else{
Mshow.setText("M");
memorys = String.valueOf(Double.parseDouble(memorys) +
Double.parseDouble(Text.getText()));
}
} //String.valueOf转换类型,Double.parseDouble将String转换成double
//将当前Text里的数值与寄存器里相家并再放入寄存器
void MR_actionPerformed(ActionEvent e) {
if (Lock) {}
else
TextShow(memorys); //将寄存器放入Text
}
void BaSp_actionPerformed(ActionEvent e) {
if (Lock) {}
else {
String tem;
tem = Text.getText();
if (tem.substring(tem.length() - 1, tem.length()).equals(".")) { //如果最后为"."(其实是判断是不是小数)
if (tem.length() == 2) { //如果Text里字符串不大于2也就是"x."的时候
TextShow("0.");
flagdot = false; //还原小数点
}
else {
if (FZ){
tem = tem.substring(0, tem.length() - 2)+".";
tem=tem.replaceAll(",","");
Fenzu(tem);
}
else{
tem = tem.substring(0, tem.length() - 2);
TextShow(tem + ".");
}
} //保证小数点一直在最后面
}
else {
if (FZ){
tem = tem.substring(0, tem.length() - 1);
tem=tem.replaceAll(",","");
Fenzu(tem);
}
else{
tem = tem.substring(0, tem.length() - 1);
TextShow(tem);
}
}
}
}
/////////////////////////////////
///////////////////////////////////////////
void Chu_actionPerformed(ActionEvent e) {
if (Lock) {}
else{
linshi = Double.parseDouble(Text.getText().replaceAll(",",""));
flag = 1;
flagchuli = true;}
}
void Chen_actionPerformed(ActionEvent e) {
if (Lock) {}
else{
linshi = Double.parseDouble(Text.getText().replaceAll(",",""));
flag = 2;
flagchuli = true;}
}
void Jian_actionPerformed(ActionEvent e) {
if (Lock) {}
else{
linshi = Double.parseDouble(Text.getText().replaceAll(",",""));
flag = 3;
flagchuli = true;}
}
void Jia_actionPerformed(ActionEvent e) {
if (Lock) {}
else{
linshi = Double.parseDouble(Text.getText().replaceAll(",",""));
flag = 4;
flagchuli = true;}
}
void Deng_actionPerformed(ActionEvent e) {
String tem;
if (Lock) {}
else {
switch (flag) {
case 1: //除
tem = String.valueOf(linshi / Double.parseDouble(Text.getText()));
if (FZ)
Fenzu(tem);
else
TextShow(tem);
break;
case 2: //乘
tem = String.valueOf(linshi * Double.parseDouble(Text.getText()));
if (FZ)
Fenzu(tem);
else
TextShow(tem);
break;
case 3: //减
tem = String.valueOf(linshi - Double.parseDouble(Text.getText()));
if (FZ)
Fenzu(tem);
else
TextShow(tem);
break;
case 4: //加
tem = String.valueOf(linshi + Double.parseDouble(Text.getText()));
if (FZ)
Fenzu(tem);
else
TextShow(tem);
break;
}
}
}
void Fenzu(String strs){
String tem1;
String tem2;
String tem3="";//用来存放小数点后面多少个0,为什么要这样?
//因为DecimalFormat("0,000."+tem3);后的tem3决定着真实的数值,避免四舍五入
int inde;
inde = strs.indexOf('.', 0); //取小数点在字符串里的的index值
tem1=strs.substring(0,inde);
if (tem1.length() < 4)
TextShow(strs);
else {
//如果小数点在最后也就是非小数时候
tem2=strs.substring(inde+1,strs.length());
for (int j=0;j<tem2.length();j++)
tem3=tem3+"0";
DecimalFormat tem = new DecimalFormat("0,000."+tem3);
TextShow(tem.format(Double.parseDouble(strs)));
}
}
void Shuru(int Capti) {
String tem;
String tem2;
tem = Text.getText();
if (Lock) {}//如果被锁什么都不做
else {
if (flagchuli) {//如果按了+-/*
tem2=(String.valueOf(Capti) + ".");
flagchuli = false; //初始化
}
else {
if (flagdot) //如果按了"."直接在最后面加输入的数字
tem2=Text.getText() + String.valueOf(Capti);
else {
if (tem.substring(0, 1).equals("0")) { //如果当前为"0.",把"0"替换成刚输入的数字
tem = tem.substring(1, tem.length() - 1);
tem2=tem + String.valueOf(Capti) + ".";
}
else {
tem = tem.substring(0, tem.length() - 1); //去掉"."
tem2=tem + String.valueOf(Capti) + ".";
}
} //再最后加上刚才输入的数字再加个"."
}
if (FZ){
tem2=tem2.replaceAll(",","");
Fenzu(tem2);
}
else
TextShow(tem2);
}
}
void TextShow(String Neirong) { //处理字符串似的效果接近window自带的
for (int i = 0; i < Neirong.length(); i++) {
if ( (Neirong.charAt(i) >= 48 && Neirong.charAt(i) <= 57)) { //判断复制过来的内容是否是纯数字
String tem;
int inde;
inde = Neirong.indexOf('.', 0); //取小数点在字符串里的的index值
if (inde == ( -1)) //如果没有小数点
Text.setText(Neirong + "."); //最后加个点
else { //如果有
if (Neirong.substring(Neirong.length() - 1,Neirong.length()).equals(".")) { //如果在最后
Text.setText(Neirong); //直接显示
}
else { //在中间的话
tem = Neirong.substring(Neirong.length() - 1, Neirong.length());
if (tem.equals("0")) //如果最后一个是0的话(除类似1.0的没有别的可能例如1.00)
Text.setText(Neirong.substring(0, inde) + "."); //把包括小数点后的字符串全去了再加个"."
else
Text.setText(Neirong);
}
}
}
}
}
void Dot_actionPerformed(ActionEvent e) {
if (Lock) {}
else
flagdot = true;
}
void Zero_actionPerformed(ActionEvent e) {
Shuru(0);
}
void One_actionPerformed(ActionEvent e) {
Shuru(1);
}
void Two_actionPerformed(ActionEvent e) {
Shuru(2);
}
void Three_actionPerformed(ActionEvent e) {
Shuru(3);
}
void Four_actionPerformed(ActionEvent e) {
Shuru(4);
}
void Five_actionPerformed(ActionEvent e) {
Shuru(5);
}
void Six_actionPerformed(ActionEvent e) {
Shuru(6);
}
void Sever_actionPerformed(ActionEvent e) {
Shuru(7);
}
void Eight_actionPerformed(ActionEvent e) {
Shuru(8);
}
void Nine_actionPerformed(ActionEvent e) {
Shuru(9);
}
void C_actionPerformed(ActionEvent e) {
Text.setText("0.");
flagdot = false; //判断是否按了"."
boolean flagchuli = false;
flag = 0;
Lock = false;
}
void CE_actionPerformed(ActionEvent e) {
flagchuli = true;
Lock = false;
}
void Sqrt_actionPerformed(ActionEvent e) { //开方
if (Lock) {}
else{
Fenzu(String.valueOf(Math.sqrt(Double.parseDouble(Text.getText().replaceAll(",","")))));}
}
void Baifen_actionPerformed(ActionEvent e) { //百分号功能
double tem;
tem=Double.parseDouble(Text.getText().replaceAll(",","")) / 100;
if (Lock) {}
else {
switch (flag) {
case 1:
Fenzu(String.valueOf(linshi /tem));
break;
case 2:
Fenzu(String.valueOf(linshi *tem));
break;
case 3:
Fenzu(String.valueOf(linshi-tem));
break;
case 4:
Fenzu(String.valueOf(linshi +tem));
break;
}
}
}
void Fen_actionPerformed(ActionEvent e) {
String tem;
tem = Text.getText();
if (tem.substring(0, tem.length()).equals("0.")) {
Text.setText("除数不能为零。");
Lock = true;
}
else
if (tem.substring(0, tem.length()).equals("除数不能为零。"))
Text.setText("除数不能为零。");
else {
Fenzu(String.valueOf(1 / (Double.parseDouble(Text.getText().replaceAll(",","")))));
}
}
void JJ_actionPerformed(ActionEvent e) {
if (Lock) {}
else {
String tem;
tem = Text.getText();
if (!tem.substring(0, 1).equals("0")) { //判断是不是0,是的话没必要,0没有正负
TextShow(String.valueOf(-Double.parseDouble(tem)));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -