📄 calculate.txt
字号:
程序源代码
import javax.swing.*;
import java.awt.Container;
import java.awt.event.*;
class Calculate_GUI extends JFrame{ //主窗口定义
private JPanel p1;
privateJButtonkeyButton[]=newJButton[16], clearButton,deleteButton;
private JTextField ofd;
private Container contentPane;
private boolean firstInput=true;
private Calculate_Model model=new Calculate_Model();
public Calculate_GUI(){
setTitle("calculate");
p1=new JPanel(); //创建面板对象p1
keyButton[0]=new JButton("7");
keyButton[1]=new JButton("8");
keyButton[2]=new JButton("9");
keyButton[3]=new JButton("/");
keyButton[4]=new JButton("4");
keyButton[5]=new JButton("5");
keyButton[6]=new JButton("6");
keyButton[7]=new JButton("*");
keyButton[8]=new JButton("1");
keyButton[9]=new JButton("2");
keyButton[10]=new JButton("3");
keyButton[11]=new JButton("-");
keyButton[12]=new JButton("+");
keyButton[13]=new JButton("0");
keyButton[14]=new JButton(".");
keyButton[15]=new JButton("=");
clearButton=new JButton("clear");
deleteButton=new JButton("del");
ofd=new JTextField(15);
ofd.setText("0");
ofd.setEditable(false); //设定文本组件中的内容不可以编辑
contentPane=this.getContentPane();
this.setSize(350,350);
p1.setLayout(new java.awt.GridLayout(4,5)); //设定网格布局
for(int i=0;i<keyButton.length;i++){
if(i==4)p1.add(deleteButton);
if(i==8)p1.add(clearButton);
keyButton[i].setFont(new java.awt.Font("Dialog",1,16));
p1.add(keyButton[i]);
}
contentPane.add(ofd,java.awt.BorderLayout.NORTH);
contentPane.add(p1,java.awt.BorderLayout.CENTER);
this.show();
}
public void registEvent(){ 事件
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){System.exit(0);}
});
for(int i=0;i<keyButton.length;i++){
keyButton[i].addActionListener(new keyButtonHandler()); //注册监听器
}
deleteButton.addActionListener(new ActionListener(){ //注册监听器
public void actionPerformed(ActionEvent ae){
ofd.setText(model.backSpace(ofd.getText()));
if(ofd.getText().equals("0"))firstInput=true;
}
});
clearButton.addActionListener(new ActionListener(){ //注册监听器
public void actionPerformed(ActionEvent ae){
firstInput=true;
ofd.setText("0");
model.reset();
}
});
}
class keyButtonHandler implements ActionListener{ //实现监听器功能
public void actionPerformed(ActionEvent ae){
char actionCommand=ae.getActionCommand().charAt(0);
switch(actionCommand){
case '1':case '2':case '3':case '4':case '5': case '6':case '7':case '8':
case '9':case '0':case '.':
if(firstInput){ofd.setText(String.valueOf(actionCommand));firstInput=false;}
else ofd.setText(ofd.getText()+actionCommand);
break;
case '+':case '-':case '*':case '/':
if(firstInput)model.setOperate(actionCommand);
else{
model.setOperateNumber(Double.parseDouble(ofd.getText()));
model.calculating();
model.setOperate(actionCommand);
ofd.setText(String.valueOf(model.getResult()));
firstInput=true;
}
break;
case '=':
if(firstInput){
model.calculating();
ofd.setText(String.valueOf(model.getResult()));
}
else{
model.setOperateNumber(Double.parseDouble(ofd.getText()));
model.calculating();
ofd.setText(String.valueOf(model.getResult()));
firstInput=true;
}
}
}
}
public class Calculate_Model{ //实现运算的功能类
private double result;
private double operateNumber;
private char operate;
public Calculate_Model(){
result=0;
operateNumber=0;
operate=' ';
}
public void setResult(double n){
result=n;
}
public void setOperate(char o){
operate=o;
}
public void setOperateNumber(double n){
operateNumber=n;
}
public double getResult(){
return result;
}
public void calculating(){
switch(operate){ //操作符
case ' ':result=operateNumber;break;
case '+':result+=operateNumber;break;
case '-':result-=operateNumber;break;
case '*':result*=operateNumber;break;
case '/':result/=operateNumber;break;
}
}
public void reset(){
result=0;
operateNumber=0;
operate=' ';
}
public String backSpace(String n){
String reResult="0";
try{
reResult=n.substring(0,n.length()-1);
Double.parseDouble(reResult);
}
catch(NumberFormatException e){reResult="0";}
return reResult;
}
}
public static void main(String args[]){ //主函数
Calculate_GUI th=new Calculate_GUI();
th.registEvent(); } }
这是我们的大二期未的JAVA课程设计,虽然简单了点, 我可是很认真做的.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -