java计算器源代码.docx
《java计算器源代码.docx》由会员分享,可在线阅读,更多相关《java计算器源代码.docx(15页珍藏版)》请在冰豆网上搜索。
![java计算器源代码.docx](https://file1.bdocx.com/fileroot1/2022-10/9/a17011d3-24cd-410e-b9d5-d3ff1d8d9d44/a17011d3-24cd-410e-b9d5-d3ff1d8d9d441.gif)
java计算器源代码
package计算器;
importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.Font;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.KeyAdapter;
importjava.awt.event.KeyEvent;
importjava.math.BigDecimal;
importjavax.swing.BorderFactory;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JMenu;
importjavax.swing.JMenuBar;
importjavax.swing.JPanel;
importjavax.swing.JTextField;
importjavax.swing.UIManager;
importjavax.swing.UnsupportedLookAndFeelException;
importjavax.swing.border.BevelBorder;
importjavax.swing.text.BadLocationException;
publicclassCounter1extendsJFrameimplementsActionListener{
publicstaticfinalintDEF_DIV_SCALE=10;//默认的精度
privateJMenuBarjmBar=newJMenuBar();//菜单条
privateJMenuedit=newJMenu("编辑(E)");
privateJMenufind=newJMenu("查看(V)");
privateJMenuhelp=newJMenu("帮助(H)");
//创建JPanel便于管理
privateJPanelpanTxt=newJPanel();
privateJPanelpanBack=newJPanel();
privateJPanelpanMen=newJPanel();
privateJPanelpanNum=newJPanel();
//创建文本域
privateJTextFieldtxt=newJTextField();
//创建文本标签
privateJLabeljlm=newJLabel();
privatebooleanflag=false;//是否可以消除文本
privatedoublea=0;//数字a的值
privatedoubleb=0;//数字b的值
privatedoubleresult=0;//两个数字运算的结果
privateStringsign="";//标记运算法则
privatedoublem=0;//暂时储存数据
//创建按钮
privateNewButtonjbBack=newNewButton("Backspace",Color.RED);
privateNewButtonjbCE=newNewButton("CE",Color.RED);
privateNewButtonjbC=newNewButton("C",Color.RED);
privateNewButtonjbMC=newNewButton("MC",Color.RED);
privateNewButtonjbMR=newNewButton("MR",Color.RED);
privateNewButtonjbMS=newNewButton("MS",Color.RED);
privateNewButtonjbM=newNewButton("M+",Color.RED);
publicCounter1(){
setSize(260,260);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(null);
setJMenuBar(jmBar);
setTitle("计算器");
setResizable(false);
init();
//ContainercontentPane=getContentPane();
//Controllerc=newController(this);
//contentPane.addKeyListener(c);
}
privatevoidinit(){
//设置第一个JPanel里面的内容
panTxt.setSize(230,20);
panTxt.setLocation(15,5);
//panTxt.setBorder(BorderFactory.createLineBorder(Color.RED));
panTxt.setLayout(newBorderLayout());//设置布局管理器
txt.setHorizontalAlignment(JTextField.RIGHT);//使光标定位在右边
txt.setBorder(BorderFactory.createLoweredBevelBorder());//设置边框凹下去
txt.setEditable(false);//设置是否可以编辑
txt.setBackground(Color.WHITE);
//txt.setEnabled(true);//设置是否激活
//txt.setFocusable(false);//设置是否可以获得焦点(显示光标)
txt.setText("0");
add(panTxt);
panTxt.add(txt);
Controllerc=newController(this);
txt.addKeyListener(c);
//设置第二个JPanel里面的内容
panBack.setSize(190,25);
panBack.setLocation(52,35);
//画出边框便于查看
//panBack.setBorder(BorderFactory.createLineBorder(Color.RED));
GridLayoutlayPanBack=newGridLayout();//创建布局管理器
layPanBack.setHgap(5);//设置布局管理器的边距
panBack.setLayout(layPanBack);//设置布局管理器
//添加按钮
jbBack.setFont(newFont("宋体",0,12));
panBack.add(jbBack);
panBack.add(jbCE);
panBack.add(jbC);
add(panBack);
//设置第三个JPanel里面的内容
panMen.setSize(40,140);
panMen.setLocation(5,65);
GridLayoutlayPanMen=newGridLayout(4,1);//创建布局管理器
layPanMen.setVgap(5);//设置布局管理器的边距
panMen.setLayout(layPanMen);
//panMen.setBorder(BorderFactory.createLineBorder(Color.RED));
panMen.add(jbMC);
panMen.add(jbMR);
panMen.add(jbMS);
panMen.add(jbM);
add(panMen);
//设置第四个JPanel里面的内容
panNum.setSize(200,140);
panNum.setLocation(50,65);
//panNum.setBorder(BorderFactory.createLineBorder(Color.RED));
add(panNum);
GridLayoutlayPanNum=newGridLayout(4,5);//创建布局管理器
panNum.setLayout(layPanNum);
newButtonNum();
//添加菜单项
jmBar.add(edit);
jmBar.add(find);
jmBar.add(help);
//设置文本标签的属性和添加文本标签
jlm.setBorder(BorderFactory.createBevelBorder
(1));
jlm.setSize(25,25);
jlm.setLocation(15,35);
add(jlm);
}
publicvoidnewButtonNum(){
NewButtonjb7=newNewButton("7",Color.BLUE);
NewButtonjb8=newNewButton("8",Color.BLUE);
NewButtonjb9=newNewButton("9",Color.BLUE);
NewButtonjbDivide=newNewButton("/",Color.RED);
NewButtonjbSqrt=newNewButton("sqrt",Color.BLUE);
NewButtonjb4=newNewButton("4",Color.BLUE);
NewButtonjb5=newNewButton("5",Color.BLUE);
NewButtonjb6=newNewButton("6",Color.BLUE);
NewButtonjbRide=newNewButton("*",Color.RED);
NewButtonjbPer=newNewButton("%",Color.BLUE);
NewButtonjb1=newNewButton("1",Color.BLUE);
NewButtonjb2=newNewButton("2",Color.BLUE);
NewButtonjb3=newNewButton("3",Color.BLUE);
NewButtonjbCut=newNewB