try{
Strings=fomula.get(i);
if(s.matches("[0-9.]"))
if(!
s.matches("[0-9.]")){
doubled1=0,d2=0;
intflag=0;
for(intn=0;n
inta=0;
if(s==".")
flag=1;
if(flag!
=1){
d1=d1+Integer.valueOf(fomula.get(n))*Math.pow(10,i);
a=i;
}
else
d2=d2+Integer.valueOf(fomula.get(n))*Math.pow(0.1,i-a);
}
Doubled=d1+d2;
fomula.set(k,d.toString());
k=k+2;
for(intnum=k;num
fomula.remove(k);
}
}
else{
k++;
}
i=k;
}catch(Exceptione){
}
}
*/
protectedvoidsetFomula(Strings){
fomula.add(s);
}
protecteddoublegetResult(){
returnresult;
}
protectedvoidsetResult(doubleresult){
this.result=result;
}
}
源文件三:
Operation.java
publicabstractclassOperation{
protecteddoublenumberA;
protecteddoublenumberB;
protectedvoidsetNumber(DoublenumberA,DoublenumberB){
this.numberA=numberA;
this.numberB=numberB;
}
publicabstractdoublegetResult();
}
源文件四:
OperationAdd.java
publicclassOperationAddextendsOperation{
@Override
publicdoublegetResult(){
//TODOAuto-generatedmethodstub
doubleresult=0;
result=numberA+numberB;
returnresult;
}
}
源文件五:
OperationDiv.java
publicclassOperationDivextendsOperation{
@Override
publicdoublegetResult(){
//TODOAuto-generatedmethodstub
try{
doubleresult=0;
result=numberA/numberB;
returnresult;
}catch(ArithmeticExceptione){
System.out.println("算术异常");
return0;
}
}
}
源文件六:
OperationFactory.java
publicclassOperationFactory{
publicOperationcreatOperate(Stringobject){
Operationoper=null;
switch(object){
case"+":
oper=newOperationAdd();break;
case"-":
oper=newOperationSub();break;
case"*":
oper=newOperationMul();break;
case"/":
oper=newOperationDiv();break;
default:
System.out.println("该计算器不具备此种运算的能力");
}
returnoper;
}
}
源文件七:
OperationMul.java
publicclassOperationMulextendsOperation{
@Override
publicdoublegetResult(){
//TODOAuto-generatedmethodstub
doubleresult=0;
result=numberA*numberB;
returnresult;
}
}
源文件八:
OperationSub.java
publicclassOperationSubextendsOperation{
@Override
publicdoublegetResult(){
//TODOAuto-generatedmethodstub
doubleresult=0;
result=numberA-numberB;
returnresult;
}
}
源文件九:
winder.java
importjava.awt.BorderLayout;
importjava.awt.EventQueue;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.border.EmptyBorder;
importjavax.swing.JButton;
importjavax.swing.JTextField;
importjava.awt.event.ActionListener;
importjava.awt.event.ActionEvent;
importjava.awt.event.KeyAdapter;
importjava.awt.event.KeyEvent;
importjava.awt.event.KeyListener;
importjava.util.ArrayList;
importjava.util.LinkedList;
publicclasswinderextendsJFrame{
privateJPanelcontentPane;
privateJTextFieldtextField;
privateStrings="";
/**
*Launchtheapplication.
*/
publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
try{
winderframe=newwinder();
//添加键盘事件
frame.addKeyListener(newKeyListener()
{
publicvoidkeyPressed(KeyEvente){
System.out.println(e.getKeyChar());
}
@Override
publicvoidkeyReleased(KeyEventarg0){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidkeyTyped(KeyEventarg0){
//TODOAuto-generatedmethodstub
}
});
frame.setVisible(true);
}catch(Exceptione){
e.printStackTrace();
}
}
});
}
/**
*Createtheframe.
*/
publicwinder(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,276,338);
contentPane=newJPanel();
contentPane.setBorder(newEmptyBorder(5,5,5,5));
setContentPane(contentPane);
contentPane.setLayout(null);
JButtonbtnNewButton=newJButton("1");
btnNewButton.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringi=e.getActionCommand();//得到按钮上的字符
s=s+i;
intermediary.getIntermediary().setFomula(i);
textField.setText(s);
}
});
btnNewButton.setBounds(70,68,50,30);
contentPane.add(btnNewButton);
JButtonbutton=newJButton("/");
button.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringi=e.getActionCommand();//得到按钮上的字符
s=s+i;
intermediary.getIntermediary().setFomula(i);
textField.setText(s);
}
});
button.setBounds(10,188,50,30);
contentPane.add(button);
JButtonbutton_1=newJButton("2");
button_1.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringi=e.getActionCommand();//得到按钮上的字符
s=s+i;
intermediary.getIntermediary().setFomula(i);
textField.setText(s);
}
});
button_1.setBounds(130,68,50,30);
contentPane.add(button_1);
JButtonbutton_2=newJButton("3");
button_2.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringi=e.getActionCommand();//得到按钮上的字符
s=s+i;
intermediary.getIntermediary().setFomula(i);
textField.setText(s);
}
});
button_2.setBounds(190,68,50,30);
contentPane.add(button_2);
JButtonbutton_3=newJButton("+");
button_3.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringi=e.getActionCommand();//得到按钮上的字符
s=s+i;
intermediary.getIntermediary().setFomula(i);
textField.setText(s);
}
});
button_3.setBounds(10,68,50,30);
contentPane.add(button_3);
JButtonbutton_4=newJButton("4");
button_4.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringi=e.getActionCommand();//得到按钮上的字符
s=s+i;
intermediary.getIntermediary().setFomula(i);
textField.setText(s);
}
});
button_4.setBounds(70,108,50,30);
contentPane.add(button_4);
JButtonbutton_5=newJButton("5");
button_5.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringi=e.getActionCommand();//得到按钮上的字符
s=s+i;
intermediary.getIntermediary().setFomula(i);
textField.setText(s);
}
});
button_5.setBounds(130,108,50,30);
contentPane.add(button_5);
JButtonbutton_6=newJBu