教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 学前教育 >

北邮JAVA第三次作业科学计算器(附源代码)(4)

来源:网络收集 时间:2026-05-16
导读: import java.awt.event.ActionListener; import java.math.BigDecimal; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextField; import javax.swing.SwingConstants; /** * @auth

import java.awt.event.ActionListener; import java.math.BigDecimal;

import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextField; import javax.swing.SwingConstants; /**

* @author lingnanmiao *

* BUG解决日志

* - BigDecimal除不尽报错

* - 浮点数精度问题,采用了BigDecimal

* - 按下等于后再次输入字符时实际num1与文本框显示不同步 * - Delete时会删除运算符的问题 * - 正则表达式去多余的0 * */

public class MyFrame extends JFrame{

/**

* 声明各个控件,在后面初始化 */

private JFrame frame; private JTextField result; private JButton bt_1; private JButton bt_2; private JButton bt_3; private JButton bt_4; private JButton bt_5; private JButton bt_6; private JButton bt_7; private JButton bt_8; private JButton bt_9; private JButton bt_0; private JButton bt_equal;

11

private JButton bt_dot; private JButton bt_d0; private JButton bt_plus; private JButton bt_sub; private JButton bt_ac; private JButton bt_del; private JButton bt_mul; private JButton bt_div; private JButton bt_power; private JButton bt_sqrt; private JButton bt_lg; private JButton bt_ln; /**

* 几个变量,用于计算、判定,存放结构等。 * */

private boolean numflag = false; //标志:是否输入数字 private boolean opflag = false; //标志:是否输入运算操作符 private String txt = null; //显示到文本框里的字符串

private String num_txt = \正在键入的操作数的字符串形式 private String op = \存放输入的运算操作符 private double num1 = 0; //num1和num2用作运算 private double num2 = 0;

private BigDecimal big_num1 = new BigDecimal(Double.toString(0));//解决浮点数的精度问题 private BigDecimal big_num2 = new BigDecimal(Double.toString(0)); /**

* Launch the application. */

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() { public void run() { try {

MyFrame window = new MyFrame(); //创建对象时初始化控件 window.frame.setVisible(true); } catch (Exception e) {

//添加到线程队列

12

e.printStackTrace(); } } }); } /**

* Constructor */

public MyFrame() { /**

* 初始化控件 */

public void initialize(){

frame = new JFrame(\计算器\frame.setResizable(false); }

initialize();

frame.setBounds(100, 100, 371+60, 371);

frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE); frame.getContentPane().setLayout(null);

result = new JTextField(); //-----------------------------------------------

result.setFont(new Font(\ result.setHorizontalAlignment(SwingConstants.RIGHT); //

result.setBounds(29, 28, 308+60, 50); // Initialize 显示结果的文本框的布局 frame.getContentPane().add(result); // result.setColumns(10); //

result.setText(txt); //----------------------------------------------- /**

* Number Keyboard Initialize */

bt_0 = new JButton(\

bt_0.addActionListener(new ActionListener() {

@Override

13

});

public void actionPerformed(ActionEvent e) { }

numBtnAction(\

bt_0.setBounds(99, 273, 50, 50); frame.getContentPane().add(bt_0);

bt_1 = new JButton(\

bt_1.addActionListener(new ActionListener() {

});

@Override

public void actionPerformed(ActionEvent e) { }

numBtnAction(\

bt_1.setBounds(99, 213, 50, 50); frame.getContentPane().add(bt_1);

bt_2 = new JButton(\

bt_2.addActionListener(new ActionListener() {

});

@Override

public void actionPerformed(ActionEvent e) { }

numBtnAction(\

bt_2.setBounds(159, 213, 50, 50); frame.getContentPane().add(bt_2);

bt_3 = new JButton(\

bt_3.addActionListener(new ActionListener() {

});

@Override

public void actionPerformed(ActionEvent e) { }

numBtnAction(\

bt_3.setBounds(219, 213, 50, 50); frame.getContentPane().add(bt_3);

14

bt_4 = new JButton(\

bt_4.addActionListener(new ActionListener() {

});

@Override

public void actionPerformed(ActionEvent e) { }

numBtnAction(\

bt_4.setBounds(99, 157, 50, 50); frame.getContentPane().add(bt_4);

bt_5 = new JButton(\

bt_5.addActionListener(new ActionListener() {

});

@Override

public void actionPerformed(ActionEvent e) { }

numBtnAction(\

bt_5.setBounds(159, 157, 50, 50); frame.getContentPane().add(bt_5);

bt_6 = new JButton(\

bt_6.addActionListener(new ActionListener() {

});

@Override

public void actionPerformed(ActionEvent e) { }

numBtnAction(\

bt_6.setBounds(219, 157, 50, 50); frame.getContentPane().add(bt_6);

bt_7 = new JButton(\

bt_7.addActionListener(new ActionListener() {

}); …… 此处隐藏:2073字,全部文档内容请下载后查看。喜欢就下载吧 ……

北邮JAVA第三次作业科学计算器(附源代码)(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/598714.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)