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) { } } 大佬帮忙填一下代码,自己填的一直出错
...全文
3608 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxs.. 2020-10-30
  • 打赏
  • 举报
回复
引用 1 楼 aKLqian 的回复:
你好,作业自己写
就是因为自己写了一直出错就剩代码27不会
aKLqian 2020-10-29
  • 打赏
  • 举报
回复 1
你好,作业自己写
井丶然 2021-12-08
  • 举报
回复
@aKLqian 你好,作业自己写
题目:简易计算器的设计 一、设计概要 1、设计内容 计算器的设计使用图形用户界面实现,能够进行简单的加、减、乘、除四则计算 ; 参与运算的数字通过点击按钮输入。 2、程序流程图 详细设计 import java.awt.BorderLayout; //导入AWT页面设置类 import java.awt.Button; //导入AWT按钮类 import java.awt.Frame; import java.awt.GridLayout; import java.awt.Panel; import java.awt.TextField; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; //导入AWT鼠标监视器 import java.awt.event.WindowEvent; import java.awt.event.WindowListener;//导入AWT窗口监视器 //创建计算器的主窗口,该类含有main函数 public class Calculator { public static void main(String[] args) { //创建Frame对象 Frame f = new Frame("Calculator"); //创建文本框,用于接收数字和操作 final TextField tf = new TextField(); //声明一个面板用于存放按钮 Panel p = new Panel(); f.setLayout(new BorderLayout()); //将文本框放在北部 f.add(tf, BorderLayout.NORTH); //将按钮放于中部 f.add(p, BorderLayout.CENTER); //设置布局模式 p.setLayout(new GridLayout(4, 4)); //创建16个按钮 Button one = new Button("1"); Button two = new Button("2"); Button three = new Button("3"); Button four = new Button("4"); Button five = new Button("5"); Button six = new Button("6"); Button seven = new Button("7"); Button eight = new Button("8"); Button nine = new Button("9"); Button zero = new Button("0"); Button add = new Button("+"); Button sub = new Button("-"); Button mul = new Button("*"); Button div = new Button("/"); Button decimal = new Button("."); final Button equal = new Button("="); //将按钮添加到P p.add(one); p.add(two); p.add(three); p.add(four); p.add(five); p.add(six); p.add(seven); p.add(eight); p.add(nine); p.add(zero); p.add(add); p.add(sub); p.add(mul); p.add(div); p.add(decimal); p.add(equal); final String[] ary = {"", null, ""}; //该类为主类创建数字按钮对象 class NumMouseListener implements MouseListener{ public void mouseClicked(MouseEvent e) { String num = ((Button)e.getSource()).getLabel().trim(); if(ary[1] == null) { ary[0] = ary[0] + "" + num; } else{ ary[2] = ary[2] + "" + num; } tf.setText(tf.getText() + "" + num); } public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mousePressed(Mous

58,454

社区成员

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

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