java制作简易计算器

wxs.. 2020-10-28 06:51:59
UserFrm.java import java.awt.*; import java.awt.event.*; public class UserFrm extends Frame implements ActionListener { private MenuBar jmb = new MenuBar(); private MenuItem item = new MenuItem("退 出"); public static Font font = new Font("宋体", 1, 16); public UserFrm(String title) throws HeadlessException { super(title); //【代码1】//设置该Frame位置与大小,具体值为(100, 100, 250, 200) setVisible(true); Menu menu = new Menu("文 件"); menu.add(item); item.setFont(font); Panel panelNorth = new Panel(); //【代码2】//把panelNorth加入窗体的北区 add(new Caculator(), BorderLayout.CENTER); item.addActionListener(this); jmb.add(menu); jmb.setFont(font); setMenuBar(jmb); //【代码3】//用匿名类的方式设计完成窗体关闭的监听和实现关闭的方法 validate(); } public void actionPerformed(ActionEvent e) { Object o = e.getSource(); if (o == item) System.exit(1); } public static void main(String[] args) { new UserFrm("用户界面"); } } class Caculator extends Panel implements ActionListener, KeyListener { private TextField tf = new TextField(""); private float x = 0; private float y = 0; private int code = 0; private boolean enable; private boolean first; private String str = ""; public Caculator() { setLayout(new BorderLayout()); enable = true; first = true; add(tf, BorderLayout.NORTH); Panel panel = new Panel(); //【代码4】//把panel设置为GridLayout布局 Button btn = null; //【代码5】//创建btn并把标题设为1;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听 //【代码6】//创建btn并把标题设为2;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听 //【代码7】//创建btn并把标题设为3;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听 //【代码8】//创建btn并把标题设为+;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听 //【代码9】//创建btn并把标题设为4;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听 //【代码10】//创建btn并把标题设为5;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听 //【代码11】//创建btn并把标题设为6;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听 //【代码12】//创建btn并把标题设为-;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听 //【代码13】//创建btn并把标题设为7;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听 //【代码14】//创建btn并把标题设为8;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听 ///【代码15】//创建btn并把标题设为9;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听 //【代码16】//创建btn并把标题设为*;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听 //【代码17】//创建btn并把标题设为0;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听 //【代码18】//创建btn并把标题设为.;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听 //【代码19】//创建btn并把标题设为/;把btn加入panel中;设置该按钮的字体格式为UserFrm.font;设置输入确认监听;设置键盘输入监听 btn = new Button("="); panel.add(btn); btn.setFont(UserFrm.font); btn.addActionListener(this); btn.addKeyListener(this); //【代码20】//把panel加入Caculator的中部区域中 } public void actionPerformed(ActionEvent e) { if (e.getActionCommand() == "+") { //【代码21】//把文本框里的数字转成浮点型,赋给x code = 0; this.tf.setText(""); } if (e.getActionCommand() == "-") { //【代码21】//把文本框里的数字转成浮点型,赋给x code = 1; this.tf.setText(""); } if (e.getActionCommand() == "*") { //【代码21】//把文本框里的数字转成浮点型,赋给x code = 2; this.tf.setText(""); } if (e.getActionCommand() == "/") { x = Float.parseFloat(tf.getText()); code = 3; this.tf.setText(""); } if (e.getActionCommand() != "+" && e.getActionCommand() != "-" && e.getActionCommand() != "*" && e.getActionCommand() != "/" && e.getActionCommand() != "=") { if (enable) { if (first) { tf.setText(e.getActionCommand()); first = false; } else { tf.setText(tf.getText() + e.getActionCommand()); } } else { tf.setText(e.getActionCommand()); enable = true; } } if (e.getActionCommand() == "=") { switch (code) { case 0: //【代码22】//完成两个数的加法运算 tf.setText(Float.toString(y)); enable = false; break; case 1: //【代码23】//完成两个数的减法运算 tf.setText(Float.toString(y)); enable = false; break; case 2: //【代码24】//完成两个数的乘法运算 tf.setText(Float.toString(y)); enable = false; break; case 3: //【代码25】//完成两个数的除法运算 tf.setText(Float.toString(y)); enable = false; break; } } } public void keyPressed(KeyEvent e) { if (e.getKeyChar() == '+') { x = Float.parseFloat(tf.getText()); code = 0; this.tf.setText(""); } if (e.getKeyChar() == '-') { x = Float.parseFloat(tf.getText()); code = 1; this.tf.setText(""); } if (e.getKeyChar() == '*') { x = Float.parseFloat(tf.getText()); code = 2; this.tf.setText(""); } if (e.getKeyChar() == '/') { x = Float.parseFloat(tf.getText()); code = 3; this.tf.setText(""); } if (【代码26】) {//判断用键盘输入的数字是否为0-9以及.号,其中的一个。 if (enable) { //【代码27】//在文本框中输入一个数字并显示。当再次输入数字时,把原数据放大十倍再并上第二次输入的数据。 //提示:用first确定数字是否第一次输入数据;用字符串合并来放大十倍。 } else { str = Character.toString(e.getKeyChar()); tf.setText(str); enable = true; } } if (【代码28】) {//判断用键盘输入的地键是否是回车确认键。 switch (code) { case 0: y = x + Float.parseFloat(this.tf.getText());//完成两个数的加法运算 tf.setText(Float.toString(y)); enable = false; break; case 1: y = x - Float.parseFloat(this.tf.getText());//完成两个数的减法运算 tf.setText(Float.toString(y)); enable = false; break; case 2: y = x * Float.parseFloat(this.tf.getText());//完成两个数的乘法运算 tf.setText(Float.toString(y)); enable = false; break; case 3: y = x / Float.parseFloat(this.tf.getText());//完成两个数的除法运算 tf.setText(Float.toString(y)); enable = false; break; } } } public void keyReleased(KeyEvent arg0) { } public void keyTyped(KeyEvent arg0) { } } 大佬帮忙填一下代码,自己填的一直出错
...全文
3607 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxs.. 2020-10-30
  • 打赏
  • 举报
回复
引用 1 楼 aKLqian 的回复:
你好,作业自己写
就是因为自己写了一直出错就剩代码27不会
aKLqian 2020-10-29
  • 打赏
  • 举报
回复 1
你好,作业自己写
井丶然 2021-12-08
  • 举报
回复
@aKLqian 你好,作业自己写

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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