java作业 计算器_JAVA作业-简易计算器

这是一个JAVA实现的简易计算器程序,包含了数字按钮0-9、小数点、加减乘除及清零功能。用户可以通过点击按钮进行计算,结果显示在一个不可编辑的文本框中,程序还包含关闭和关于制作者的按钮。
摘要由CSDN通过智能技术生成

importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JTextField;importjavax.swing.border.TitledBorder;public class Jisuanqi extends JFrame implementsActionListener{privateJTextField reasult;privateJButton btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btn0,

btnAC,btnAdd,btnSub,btnReasult,btnD,

btnAbout,btnCancel;private booleanadd,sub,end,s,c;privateString str;private doublenum1,num2;publicJisuanqi(){

JPanel p1=newJPanel();

JPanel p2=newJPanel();

JPanel p3=newJPanel();

TitledBorder tb=new TitledBorder("OutPut");tb.setTitleColor(Color.YELLOW);

btnAbout=new JButton("Producer");

btnCancel=new JButton("Close");

btnCancel.addActionListener(newActionListener(){public voidactionPerformed(ActionEvent ee){

System.exit(0);

}

});

btnAbout.addActionListener(newActionListener(){public voidactionPerformed(ActionEvent ee){

JOptionPane.showMessageDialog(null, "刘道广", "制作人",JOptionPane.INFORMATION_MESSAGE);

}

});

p3.add(btnAbout);

p3.add(btnCancel);

reasult= new JTextField("0",20);

reasult.setEditable(false);

reasult.setHorizontalAlignment(JTextField.RIGHT);

reasult.setForeground(Color.BLUE);

p1.setBorder(tb);

p1.add(reasult);

btn0=new JButton("0"); btn0.addActionListener(this);

btn1=new JButton("1"); btn1.addActionListener(this);

btn2=new JButton("2"); btn2.addActionListener(this);

btn3=new JButton("3"); btn3.addActionListener(this);

btn4=new JButton("4"); btn4.addActionListener(this);

btn5=new JButton("5"); btn5.addActionListener(this);

btn6=new JButton("6"); btn6.addActionListener(this);

btn7=new JButton("7"); btn7.addActionListener(this);

btn8=new JButton("8"); btn8.addActionListener(this);

btn9=new JButton("9"); btn9.addActionListener(this);

btnD=new JButton("."); btnD.addActionListener(this); btnD.setForeground(Color.GREEN);

btnAC=new JButton("AC"); btnAC.addActionListener(this); btnAC.setBackground(Color.RED);

btnAdd=new JButton("+"); btnAdd.addActionListener(this); btnAdd.setForeground(Color.CYAN);

btnSub=new JButton("-"); btnSub.addActionListener(this); btnSub.setForeground(Color.CYAN);

btnReasult=new JButton("="); btnReasult.addActionListener(this); btnReasult.setForeground(Color.RED);

p2.add(btn1);p2.add(btn2);p2.add(btn3);p2.add(btn4);p2.add(btn5);

p2.add(btn6);p2.add(btn7);p2.add(btn8);p2.add(btn9);p2.add(btn0);

p2.add(btnD);p2.add(btnAC);p2.add(btnAdd);p2.add(btnSub);p2.add(btnReasult);

p2.setLayout(new GridLayout(5,3));

add(p1,BorderLayout.NORTH);

add(p2,BorderLayout.CENTER);

add(p3,BorderLayout.SOUTH);

}public void num(inti){

String s=null;

s=String.valueOf(i);if(end){

reasult.setText("0");

end=false;

}if((reasult.getText()).equals("0")){

reasult.setText(s);

}else{

str=reasult.getText()+s;

reasult.setText(str);

}

}public voidactionPerformed(ActionEvent e){if(e.getSource()==btn1) num(1);else if(e.getSource()==btn2) num(2);else if(e.getSource()==btn3) num(3);else if(e.getSource()==btn4) num(4);else if(e.getSource()==btn5) num(5);else if(e.getSource()==btn6) num(6);else if(e.getSource()==btn7) num(7);else if(e.getSource()==btn8) num(8);else if(e.getSource()==btn9) num(9);else if(e.getSource()==btn0) num(0);else if(e.getSource()==btnAdd){

sign(1);

btnD.setEnabled(true);

}else if(e.getSource()==btnSub){

sign(2);

btnD.setEnabled(true);

}else if(e.getSource()==btnAC){

btnD.setEnabled(true);

reasult.setText("0");

}else if(e.getSource()==btnD){

str=reasult.getText();

str+='.';

reasult.setText(str);

btnD.setEnabled(false);

}else if(e.getSource()==btnReasult){

btnD.setEnabled(true);

num2=Double.parseDouble(reasult.getText());if(add){

num1=num1+num2;

}else if(sub){

num1=num1-num2;

}

reasult.setText(String.valueOf(num1));

end=true;

}

}public void sign(ints){if(s==1){

add=true;

sub=false;

}else if(s==2){

add=false;

sub=true;

}

num1=Double.parseDouble(reasult.getText());

end=true;

}public static voidmain(String[] args){

Jisuanqi j=newJisuanqi();

j.setTitle("+/-简易计算器");

j.setLocation(500, 280);

j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

j.setResizable(false);

j.pack();

j.setVisible(true);

}

}

java作业 科学计算器 menu切换普通与科学计算器 部分代码: class MyKey extends KeyAdapter { public void keyPressed(KeyEvent e) { char c = e.getKeyChar(); System.out.print(c); boolean bFlag = false; switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if(IfResult){ tf.setText(""); IfResult = false; } tf.setText(tf.getText().trim() + c); bFlag = true; break; case '.': if(tf.getText().trim().indexOf(".") == -1){ tf.setText(tf.getText() + "."); } bFlag = true; break; case '_': if(Double.parseDouble(tf.getText()) > 0){ if(tf.getText().length() > 1){ tf.setText(tf.getText().substring(0, tf.getText().length() - 1)); }else{ tf.setText("0"); IfResult = true; } }else{ if(tf.getText().length() > 2){ tf.setText(tf.getText().substring(0, tf.getText().length() - 1)); }else{ tf.setText("0"); IfResult = true; } } bFlag = true; break; case '+': if(flag){ IfResult = false; } if(IfResult){ oper = "+"; }else{ getResult(Double.parseDouble(tf.getText())); oper = "+"; IfResult = true; } bFlag = true; break; case '-': if(flag){ IfResult = false; } if(IfResult){ oper = "-"; }else{ getResult(Double.parseDouble(tf.getText())); oper = "-"; IfResult = true; } bFlag = true; break; case '*': if(flag){ IfResult = false; } if(IfResult){ oper = "*"; }else{ getResult(Double.parseDouble(tf.getText())); oper = "*"; IfResult = true; } bFlag = true; break; case '/': if(flag){ IfResult = false; } if(IfResult){ oper = "/"; }else{ getResult(Double.parseDouble(tf.getText())); oper = "/"; IfResult = true; } bFlag = true; break; case '=': if(flag){ IfResult = false; } if(IfResult){ oper = "="; }else{ getResult(Double.parseDouble(tf.getText())); oper = "="; IfResult = true; } bFlag = true; break; } if(bFlag && tf.getText().equals("0")){ tf.setText("0"); IfResult = true; flag = true; } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值