java GUI 编写一个简易计算器程序

xiaofenglog 2019-06-05 05:14:16
实现如下界面,具体的代码如何?求解!
...全文
534 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_43938011 2019-07-10
  • 打赏
  • 举报
回复
package keshe;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.List;
import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager;
import javax.script.ScriptException;


public class Jisuan1 extends Frame
{
public static void main(String[] args)
{

final Frame jf = new Frame("计算器");
jf.setSize(350,400); //设置窗口长宽
jf.setResizable(false); //设置窗体大小不可更改
jf.setBackground(Color.darkGray); // LIGHT_GRAY 是灰色 MAGENTA亮紫



/*******添加文本框********/

jf.setLayout(null); //组件不会随窗口的大小而改变
final JTextField jt1 = new JTextField();
jt1.setHorizontalAlignment(JTextField.RIGHT); //设置文本框右对齐
jt1.setEditable(false); //设置文本框不可编辑
jt1.setBounds(50,80,233,100);
jf.add(jt1);


/*******添加按钮******/
//设置0键
final JButton b0 = new JButton("0");
b0.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(jt1.getText()+"0");
}
});
//设置1键
final JButton b1 = new JButton("1");
b1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(jt1.getText()+"1");
}
});
//设置2键
final JButton b2 = new JButton("2");
b2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(jt1.getText()+"2");
}
});
//设置3键
final JButton b3 = new JButton("3");
b3.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) //监听器接口定义好的 ActionEvent类型 e是参数名
{
jt1.setText(jt1.getText()+"3");
}
});
//设置4键
final JButton b4 = new JButton("4");
b4.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(jt1.getText()+"4");
}
});
//设置5键
final JButton b5 = new JButton("5");
b5.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(jt1.getText()+"5");
}
});
//设置6键
final JButton b6 = new JButton("6");
b6.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(jt1.getText()+"6");
}
});
//设置7键
final JButton b7 = new JButton("7");
b7.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(jt1.getText()+"7");
}
});
//设置8键
final JButton b8 = new JButton("8");
b8.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(jt1.getText()+"8");
}
});
//设置9键
final JButton b9 = new JButton("9");
b9.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(jt1.getText()+"9");
}
});
//设置加号键
final JButton badd = new JButton("+");
badd.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(jt1.getText()+"+");
}
});
//设置减号键
final JButton bminus = new JButton("-");
bminus.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(jt1.getText()+"-");
}
});
//设置乘号键
final JButton bmulti = new JButton("*");
bmulti.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(jt1.getText()+"*");
}
});
//设置除号键
final JButton bdivide = new JButton("/");
bdivide.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(jt1.getText()+"/");
}
});
//设置等号键
final JButton bequal = new JButton("=");

bequal.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) //进行数学公式的计算
{
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine se = sem.getEngineByName("js");
try{
String reslut = se.eval(jt1.getText()).toString();
jt1.setText(reslut);
}catch (ScriptException evt){
JOptionPane.showMessageDialog(null,"表达式不合法!");
}


}
});
//设置小数点号键
final JButton bpoint = new JButton(".");
bpoint.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(jt1.getText()+".");
}
});
//设置左括号键
final JButton bleft = new JButton("(");
bleft.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(jt1.getText()+"(");
}
});
//设置右括号键
final JButton bright = new JButton(")");
bright.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(jt1.getText()+")");
}
});
//设置负号键
final JButton bfuhao = new JButton("-");
bfuhao.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(jt1.getText()+"-");
}
});
//设置清0键
final JButton bce = new JButton("CE");
bce.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText("");
}
});
//设置退格键
final JButton bback = new JButton("Backspace");
bback.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String message;
int leng=jt1.getText().length();
message=jt1.getText();

if(leng==0)
{
JOptionPane.showMessageDialog(null, "以无输入内容"); //当退格到没有输入是弹出消息框提示
}
else
{
jt1.setText(message.substring(0,leng-1)); //设置文本框的内容没点一次退格减一个数
} //substring 是取字符串leng-1个字符

}
});


//按钮布局
b0.setBounds(50,338,45,35);
b1.setBounds(50,300,45,35); //前2个代表x,y坐标 后面的是 宽和高
b2.setBounds(97,300,45,35);
b3.setBounds(144,300,45,35);
b4.setBounds(50,261,45,35);
b5.setBounds(97,261,45,35);
b6.setBounds(144,261,45,35);
b7.setBounds(50,222,45,35);
b8.setBounds(97,222,45,35);
b9.setBounds(144,222,45,35);
badd.setBounds(191,338,45,35);
bminus.setBounds(191,300,45,35);
bmulti.setBounds(191,261,45,35);
bdivide.setBounds(191,222,92,35);
bequal.setBounds(238,338,45,35);
bpoint.setBounds(144,338,45,35);
bleft.setBounds(238,261,45,35);
bright.setBounds(238,300,45,35);
bfuhao.setBounds(97,338,45,35);
bce.setBounds(168,185,115,35);
bback.setBounds(50,185,115,35);

//向jf中添加控件
jf.add(b0);
jf.add(b1);
jf.add(b2);
jf.add(b3);
jf.add(b4);
jf.add(b5);
jf.add(b6);
jf.add(b7);
jf.add(b8);
jf.add(b9);
jf.add(badd);
jf.add(bminus);
jf.add(bmulti);
jf.add(bdivide);
jf.add(bequal);
jf.add(bpoint);
jf.add(bleft);
jf.add(bright);
jf.add(bfuhao);
jf.add(bce);
jf.add(bback);







//关闭按钮
jf.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});

jf.show();
}
}

50,544

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧