计算器如何实现键盘输入?(附计算器代码)

TheRealBo TheRealBo 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
想在以下计算器实现键盘输入,应该怎么写?

public class Calculator extends JFrame implements ActionListener {

// 定义计算器显示框
public JTextField jtf, jtf2;
// 定义0-9按键
public Btn btnE, btn0, btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8,
btn9, btnP, btnM, btnX, btnD, C, btnPO, btnA;
// 定义数字面板,操作符面板
public JPanel numP, numP1, numP2, showP, opP, opP1, opP2;
// 定义计算的中间变量
static double num1, num2, num3, result;
// 定义操作符
char opPerator;
boolean next = false;
static boolean flagE = false;// 监督是否按了等号
static boolean isDot = false;// 监督是否按了小数点
static String s = "=", str1, str2, newS, oldS;// 定义变量 创建对像
// TextField txt;
// UndoManager um=new UndoManager();
public JMenuBar jmb;
public JMenu jm;
private JMenuItem SCal, Cal, Exit;

public Calculator() {

super("普通计算器");
// 布局
setSize(480, 357);// setSize(309, 345);
setLocation(700, 100);
Container c = this.getContentPane();
BorderLayout bL = new BorderLayout();
c.setLayout(bL);
jmb = new JMenuBar();
setJMenuBar(jmb);
SCal = new JMenuItem("科学计算器");
Cal = new JMenuItem("普通计算器");
Exit = new JMenuItem("退出(Q)");
Exit.setMnemonic('Q');
Exit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
});
jm = new JMenu("编辑");
jm.add(Cal);
jm.add(SCal);
jm.add(Exit);
jmb.add(jm);
showP = new JPanel();
opP = new JPanel();
opP1 = new JPanel();
opP2 = new JPanel();
numP = new JPanel();
numP1 = new JPanel();
numP2 = new JPanel();

showP.setLayout(new BorderLayout());
opP.setLayout(new BorderLayout());
opP1.setLayout(new GridLayout(3, 2, 2, 2));
opP2.setLayout(new BorderLayout());
numP.setLayout(new BorderLayout());
numP1.setLayout(new GridLayout(3, 3, 2, 2));
numP2.setLayout(new GridLayout(1, 2, 2, 2));
Font font = new Font("New Roma Times", Font.BOLD, 30);

jtf2 = new JTextField("0");
jtf = new JTextField("0");
jtf.setFont(font);
jtf.setEditable(false);//jtf设置不可编辑
jtf2.setEditable(false);

showP.add(jtf2, BorderLayout.NORTH);
showP.add(jtf, BorderLayout.CENTER);
jtf2.setHorizontalAlignment(jtf2.RIGHT);
jtf.setHorizontalAlignment(jtf.RIGHT);
c.add(showP, BorderLayout.NORTH);

/************创建对象***********/

btn9 = new Btn("9");
btn8 = new Btn("8");
btn7 = new Btn("7");
btn6 = new Btn("6");
btn5 = new Btn("5");
btn4 = new Btn("4");
btn3 = new Btn("3");
btn2 = new Btn("2");
btn1 = new Btn("1");
btn0 = new Btn("0");
btnPO = new Btn(".");
C = new Btn("C");
btnA = new Btn("←");
btnP = new Btn("+");
btnM = new Btn("-");
btnX = new Btn("*");
btnD = new Btn("/");
btnE = new Btn("=");

/************设置按钮外观*********/

btn9.setFont(font);
btn9.setForeground(Color.white);
btn8.setFont(font);
btn8.setForeground(Color.white);
btn6.setFont(font);
btn6.setForeground(Color.white);
btn7.setFont(font);
btn7.setForeground(Color.white);
btn5.setFont(font);
btn5.setForeground(Color.white);
btn4.setFont(font);
btn4.setForeground(Color.white);
btn3.setFont(font);
btn3.setForeground(Color.white);
btn2.setFont(font);
btn2.setForeground(Color.white);
btn1.setFont(font);
btn1.setForeground(Color.white);
btn0.setFont(font);
btn0.setForeground(Color.white);
btnPO.setFont(font);
btnPO.setForeground(Color.cyan);
C.setFont(font);
C.setForeground(Color.cyan);
btnA.setFont(font);
btnA.setForeground(Color.cyan);
btnP.setFont(font);
btnP.setForeground(Color.cyan);
btnM.setFont(font);
btnM.setForeground(Color.cyan);
btnX.setFont(font);
btnX.setForeground(Color.cyan);
btnD.setFont(font);
btnD.setForeground(Color.cyan);
btnE.setFont(font);
btnE.setForeground(Color.cyan);
btnE.setEnabled(false);

/************按钮添加到面板***************/

numP1.add(btn7);
numP1.add(btn8);
numP1.add(btn9);
numP1.add(btn4);
numP1.add(btn5);
numP1.add(btn6);
numP1.add(btn1);
numP1.add(btn2);
numP1.add(btn3);
numP.add(numP1, BorderLayout.NORTH);//1-9

numP2.add(btn0);//0
numP2.add(btnPO);//小数点
numP.add(numP2, BorderLayout.SOUTH);

c.add(numP, BorderLayout.WEST);

opP1.add(C);//复原
opP1.add(btnA);//撤消
opP1.add(btnP);//加号
opP1.add(btnM);//减号
opP1.add(btnX);//乘号
opP1.add(btnD);//除号
opP.add(opP1, BorderLayout.NORTH);

opP2.add(btnE);//等号
opP.add(opP2, BorderLayout.SOUTH);

c.add(opP, BorderLayout.EAST);
this.setResizable(false);



/************添加监听器*******************/

btn0.addActionListener(this);
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
btn4.addActionListener(this);
btn5.addActionListener(this);
btn6.addActionListener(this);
btn7.addActionListener(this);
btn8.addActionListener(this);
btn9.addActionListener(this);
btnP.addActionListener(this);
btnM.addActionListener(this);
btnX.addActionListener(this);
btnD.addActionListener(this);
btnE.addActionListener(this);
btnPO.addActionListener(this);
btnA.addActionListener(this);
C.addActionListener(this);
SCal.addActionListener(this);
}

public void actionPerformed(ActionEvent e) {
//代码太长发不了,这里就不加入了
}
}
...全文

相关推荐

支持键盘输入的在线网页计算器

支持键盘输入的在线网页计算器,包含有防下载代码 用法:点一下淡黄色部分即可进行键盘输入运算

denglizi

Java计算器(简单版规定数字及键盘输入两种方法)

Java计算器 问题描述: 利用接口做参数,写个计算器,能完成加减乘除运算。 (1)定义一个接口Compute含有一个方法int computer(int n, int m)。 (2)设计四个类分别实现此接口,完成加减乘除运算。 (3)设计一个类UseCompute,类中含有方法:public void useCom(Compute com, int one, int two),此方法能够用传递过...

猪饲夫妇、

简单的计算器代码

简单的计算器代码 package p1; /* 0,使用步骤3步: 1,打开cmd 使用cd命令进入该文件所在的目录(切换盘符命令如“D:”) 2,编译命令javac MyCalc.java -d ./ 3,运行命令java p1.MyCalc */ import java.awt.*; import java.awt.event.*; import java.math.BigDecimal;...

我是巴耶克

html+css+js实现科学计算器

代码地址如下:http://www.demodashi.com/demo/13751.html 项目描述 纯html+css+js实现一个科学计算器,支持平方开方指数对数等基本函数,支持键盘输入,有简单和高级两种模式 文件结构 纯html+css+js实现,文件结构非常简单,就三个文件。 演示效果 实验设计 将按钮的value设置为按钮显示的字符,当点击按钮的时候,输入框增加的字符为按...

findhappy117

用java编写一个简易的计算器代码

这是一个用java写的简单计算器,十分适用于java初学者。

xingmei12
评论 4
收藏 已收藏
分享
返回顶部
TheRealBo
Eclipse 58,439 成员 49,457 内容