更新时间:2022-12-15 11:56:10 来源:极悦 浏览1104次
极悦小编这次用java的swing来实现计算器。
第一张图:
总体布局采用流式布局。
1.文本框
只有一个文本框 JPanel 添加一个
JTextField.boxField.setLayout(new FlowLayout()); box.setPreferredSize(新维度(300, 25)); boxField.add(框);
JTextField 设置尺寸需要使用 setPreferredSize() 而不是 setSize()。
2.钥匙
Key 4/*4 Grid layout , 逐一添加按钮即可 .
buttonsField.setLayout(new GridLayout(4, 4, 20, 20)); buttonsField.setPreferredSize(新维度(300, 300)); buttonsField.add(xxx); //添加....
按钮的鼠标事件,想一想,点击一个按钮,然后在文本框中会有相应的响应,相应地添加事件监听
.num0.addActionListener(v -> { box.setText(box.getText() + " 0"); mainFrame.requestFocus(); });
requestFocus()这一行把焦点还给了JFrame,因为鼠标点击button之后,button获得了焦点,会影响后面的键盘监听。
键盘事件和鼠标事件类似,对每个按键进行判断。
这里是一个KeyListener注册到JFrame上面,直接在里面改写下面三个KeyListener方法:
public void keyPressed(KeyEvent e); public void keyReleased(KeyEvent e); public void keyTyped(KeyEvent e);
基本上通过
如果 (e.getKeyCode() == KeyEvent.VK_xxxx)
要确定密钥,唯一需要注意的是 + 和 /*
计算表达式部分这里就不细说了。
简单的说,先用GetResult.setExpression();
这个静态方法设置表达式,然后传递
GetResult.valid() 方法
判断是否合法,如果合法则通过
获取结果.result()
获取字符串结果。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习