Скачать апплет + исходный текст в архиве (21 Kb)
Исходный текст программы:
/* Калькулятор */
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.io.*;
public class Calculator extends Applet {
boolean isStandalone = false;
int Op=0,flagErase=0,oldOp=0,flagOp=0;
double Acum = 0.0;
double Buff=0.0;
TextField textFieldDisplay = new TextField();
Button buttonC = new Button();
Button button2 = new Button();
Button button4 = new Button();
Button button1 = new Button();
Button button5 = new Button();
Button button6 = new Button();
Button button7 = new Button();
Button button8 = new Button();
Button button9 = new Button();
Button button3 = new Button();
TextField textFieldMemory1 = new TextField();
TextField textFieldMemory2 = new TextField();
TextField textFieldMemory3 = new TextField();
TextField textFieldMemory4 = new TextField();
TextField textFieldMemory5 = new TextField();
TextField textFieldMemory6 = new TextField();
TextField textFieldMemory7 = new TextField();
TextField textFieldMemory8 = new TextField();
TextField textFieldMemory9 = new TextField();
TextField textFieldMemory10 = new TextField();
Label label1 = new Label();
Label label2 = new Label();
Label label3 = new Label();
Label label4 = new Label();
Label label5 = new Label();
Label label6 = new Label();
Label label7 = new Label();
Label label8 = new Label();
Label label9 = new Label();
Label label10 = new Label();
Button button0 = new Button();
Button buttonComma = new Button();
Button buttonCS = new Button();
Button buttonPl = new Button();
Button buttonMin = new Button();
Button buttonDiv = new Button();
Button buttonMul = new Button();
Button buttonEq = new Button();
Button buttonM1 = new Button("MR1");
Button buttonM2 = new Button("MR2");
Button buttonM3 = new Button("MR3");
Button buttonM4 = new Button("MR4");
Button buttonM5 = new Button("MR5");
Button buttonM6 = new Button("MR6");
Button buttonM7 = new Button("MR7");
Button buttonM8 = new Button("MR8");
Button buttonM9 = new Button("MR9");
Button buttonM10 = new Button("MR10");
//Construct the applet
public Calculator() {
}
//Initialize the applet
public void init() {
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
this.setBackground(new Color(232, 232, 232));
textFieldDisplay.setBackground(Color.white);
textFieldDisplay.setText("0");
textFieldDisplay.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
buttonC.setLabel("C");
buttonC.setForeground(Color.red);
buttonC.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonC_actionPerformed(e);
}
});
button2.setLabel("2");
button2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
button2_actionPerformed(e);
}
});
buttonCS.setLabel("+/-");
buttonCS.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonCS_actionPerformed(e);
}
});
buttonM1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonM1_actionPerformed(e);
}
});
buttonM2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonM2_actionPerformed(e);
}
});
buttonM3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonM3_actionPerformed(e);
}
});
buttonM4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonM4_actionPerformed(e);
}
});
buttonM5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonM5_actionPerformed(e);
}
});
buttonM6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonM6_actionPerformed(e);
}
});
buttonM7.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonM7_actionPerformed(e);
}
});
buttonM8.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonM8_actionPerformed(e);
}
});
buttonM9.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonM9_actionPerformed(e);
}
});
buttonM10.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonM10_actionPerformed(e);
}
});
button4.setLabel("4");
button4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
button4_actionPerformed(e);
}
});
button1.setLabel("1");
button1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
button1_actionPerformed(e);
}
});
button5.setLabel("5");
button5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
button5_actionPerformed(e);
}
});
button6.setLabel("6");
button6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
button6_actionPerformed(e);
}
});
button7.setLabel("7");
button7.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
button7_actionPerformed(e);
}
});
button8.setLabel("8");
button8.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
button8_actionPerformed(e);
}
});
button9.setLabel("9");
button9.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
button9_actionPerformed(e);
}
});
button3.setLabel("3");
button3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
button3_actionPerformed(e);
}
});
textFieldMemory1.setBackground(Color.white);
textFieldMemory1.setText("0");
textFieldMemory1.setEditable(false);
textFieldMemory1.setBackground(Color.white);
textFieldMemory2.setBackground(Color.white);
textFieldMemory2.setText("0");
textFieldMemory2.setEditable(false);
textFieldMemory2.setBackground(Color.white);
textFieldMemory3.setBackground(Color.white);
textFieldMemory3.setText("0");
textFieldMemory3.setEditable(false);
textFieldMemory3.setBackground(Color.white);
textFieldMemory4.setBackground(Color.white);
textFieldMemory4.setText("0");
textFieldMemory4.setEditable(false);
textFieldMemory4.setBackground(Color.white);
textFieldMemory5.setBackground(Color.white);
textFieldMemory5.setText("0");
textFieldMemory5.setEditable(false);
textFieldMemory5.setBackground(Color.white);
textFieldMemory6.setBackground(Color.white);
textFieldMemory6.setText("0");
textFieldMemory6.setEditable(false);
textFieldMemory6.setBackground(Color.white);
textFieldMemory7.setBackground(Color.white);
textFieldMemory7.setText("0");
textFieldMemory7.setEditable(false);
textFieldMemory7.setBackground(Color.white);
textFieldMemory8.setBackground(Color.white);
textFieldMemory8.setText("0");
textFieldMemory8.setEditable(false);
textFieldMemory8.setBackground(Color.white);
textFieldMemory9.setBackground(Color.white);
textFieldMemory9.setText("0");
textFieldMemory9.setEditable(false);
textFieldMemory9.setBackground(Color.white);
textFieldMemory10.setBackground(Color.white);
textFieldMemory10.setText("0");
textFieldMemory10.setEditable(false);
textFieldMemory10.setBackground(Color.white);
label1.setFont(new Font("Dialog", 1, 12));
label1.setText("Memory1");
label1.setForeground(Color.red);
label2.setFont(new Font("Dialog", 1, 12));
label2.setText("Memory2");
label2.setForeground(Color.red);
label3.setFont(new Font("Dialog", 1, 12));
label3.setText("Memory3");
label3.setForeground(Color.red);
label4.setFont(new Font("Dialog", 1, 12));
label4.setText("Memory4");
label4.setForeground(Color.red);
label5.setFont(new Font("Dialog", 1, 12));
label5.setText("Memory5");
label5.setForeground(Color.red);
label6.setFont(new Font("Dialog", 1, 12));
label6.setText("Memory6");
label6.setForeground(Color.red);
label7.setFont(new Font("Dialog", 1, 12));
label7.setText("Memory7");
label7.setForeground(Color.red);
label8.setFont(new Font("Dialog", 1, 12));
label8.setText("Memory8");
label8.setForeground(Color.red);
label9.setFont(new Font("Dialog", 1, 12));
label9.setText("Memory9");
label9.setForeground(Color.red);
label10.setFont(new Font("Dialog", 1, 12));
label10.setText("Memory10");
label10.setForeground(Color.red);
textFieldDisplay.setEditable(false);
button0.setLabel("0");
button0.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
button0_actionPerformed(e);
}
});
buttonComma.setLabel(",");
buttonComma.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonComma_actionPerformed(e);
}
});
buttonPl.setForeground(Color.blue);
buttonPl.setLabel("+");
buttonPl.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonPl_actionPerformed(e);
}
});
buttonMin.setForeground(Color.blue);
buttonMin.setLabel("-");
buttonMin.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonMin_actionPerformed(e);
}
});
buttonDiv.setFont(new Font("Dialog", 1, 12));
buttonDiv.setForeground(Color.blue);
buttonDiv.setLabel("/");
buttonDiv.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonDiv_actionPerformed(e);
}
});
buttonMul.setForeground(Color.blue);
buttonMul.setLabel("*");
buttonMul.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonMul_actionPerformed(e);
}
});
buttonEq.setForeground(Color.red);
buttonEq.setLabel("=");
buttonEq.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonEq_actionPerformed(e);
}
});
this.setLayout(null);
this.add(textFieldDisplay); textFieldDisplay.setBounds(9, 7, 230, 22);
this.add(buttonC); buttonC.setBounds(265, 66, 202, 27);
this.add(button2); button2.setBounds(265+42, 155, 37, 27);
this.add(button4); button4.setBounds(265, 125, 37, 27);
this.add(button1); button1.setBounds(265, 155, 37, 27);
this.add(button5); button5.setBounds(265+42, 125, 37, 27);
this.add(button6); button6.setBounds(265+84, 125, 37, 27);
this.add(button7); button7.setBounds(265, 95, 37, 27);
this.add(button8); button8.setBounds(265+42, 95, 37, 27);
this.add(button9); button9.setBounds(265+84, 95, 37, 27);
this.add(button3); button3.setBounds(265+84, 155, 37, 27);
this.add(buttonCS); buttonCS.setBounds(265+84, 185, 37, 27);
this.add(textFieldMemory1); textFieldMemory1.setBounds(63, 35, 139, 22);
this.add(textFieldMemory2); textFieldMemory2.setBounds(63, 60, 139, 22);
this.add(textFieldMemory3); textFieldMemory3.setBounds(63, 85, 139, 22);
this.add(textFieldMemory4); textFieldMemory4.setBounds(63, 110, 139, 22);
this.add(textFieldMemory5); textFieldMemory5.setBounds(63, 135, 139, 22);
this.add(textFieldMemory6); textFieldMemory6.setBounds(63, 160, 139, 22);
this.add(textFieldMemory7); textFieldMemory7.setBounds(63, 185, 139, 22);
this.add(textFieldMemory8); textFieldMemory8.setBounds(63, 210, 139, 22);
this.add(textFieldMemory9); textFieldMemory9.setBounds(63, 235, 139, 22);
this.add(textFieldMemory10); textFieldMemory10.setBounds(63,260, 139, 22);
this.add(label1); label1.setBounds(2, 35, 58, 18);
this.add(label2); label2.setBounds(2, 60, 58, 18);
this.add(label3); label3.setBounds(2, 85, 58, 18);
this.add(label4); label4.setBounds(2, 110, 58, 18);
this.add(label5); label5.setBounds(2, 135, 58, 18);
this.add(label6); label6.setBounds(2, 160, 58, 18);
this.add(label7); label7.setBounds(2, 185, 58, 18);
this.add(label8); label8.setBounds(2, 210, 58, 18);
this.add(label9); label9.setBounds(2, 235, 58, 18);
this.add(label10); label10.setBounds(2,260, 58, 18);
this.add(buttonM1); buttonM1.setBounds(205, 35, 37, 22);
this.add(buttonM2); buttonM2.setBounds(205, 60, 37, 22);
this.add(buttonM3); buttonM3.setBounds(205, 85, 37, 22);
this.add(buttonM4); buttonM4.setBounds(205, 110, 37, 22);
this.add(buttonM5); buttonM5.setBounds(205, 135, 37, 22);
this.add(buttonM6); buttonM6.setBounds(205, 160, 37, 22);
this.add(buttonM7); buttonM7.setBounds(205, 185, 37, 22);
this.add(buttonM8); buttonM8.setBounds(205, 210, 37, 22);
this.add(buttonM9); buttonM9.setBounds(205, 235, 37, 22);
this.add(buttonM10); buttonM10.setBounds(205, 260, 37, 22);
this.add(button0); button0.setBounds(265, 185, 37, 27);
this.add(buttonComma); buttonComma.setBounds(265+42, 185, 37, 27);
this.add(buttonPl); buttonPl.setBounds(265+142, 185, 60, 27);
this.add(buttonMin); buttonMin.setBounds(265+142, 124, 60, 27);
this.add(buttonDiv); buttonDiv.setBounds(265+142, 95, 60, 27);
this.add(buttonMul); buttonMul.setBounds(265+142, 155, 60, 27);
this.add(buttonEq); buttonEq.setBounds(265, 215, 202, 27);
}
void doCalc()
{
try{
if(Op!=0)
{
Buff = parseDouble(textFieldDisplay.getText());
oldOp=Op;
}
else
{
Op=oldOp;
Acum = parseDouble(textFieldDisplay.getText());
}
switch(Op)
{
case 1:
Acum += Buff;
break;
case 2:
Acum -= Buff;
break;
case 3:
Acum *= Buff;
break;
case 4:
Acum /= Buff;
break;
}
textFieldDisplay.setText(String.valueOf(Acum));
oldOp=Op;
Op=0;
flagErase=1;
textFieldMemory10.setText(textFieldMemory9.getText());
textFieldMemory9.setText(textFieldMemory8.getText());
textFieldMemory8.setText(textFieldMemory7.getText());
textFieldMemory7.setText(textFieldMemory6.getText());
textFieldMemory6.setText(textFieldMemory5.getText());
textFieldMemory5.setText(textFieldMemory4.getText());
textFieldMemory4.setText(textFieldMemory3.getText());
textFieldMemory3.setText(textFieldMemory2.getText());
textFieldMemory2.setText(textFieldMemory1.getText());
textFieldMemory1.setText(textFieldDisplay.getText());
}catch (Exception e){
System.err.println(e.getMessage());
}
}
//----------------------------------------------------------------------------
double parseDouble(String s)
{
double result=0.0;
long f=0,f2=0;
int i=0,j=0,k=0;
String s1="",s2="",s3="";
try{
k=s.indexOf('E');
if(k<0)
{
j=s.indexOf('.');
if (j>=0)
{
s1=s.substring(j+1);
f=Long.parseLong(s1,10);
s2=s.substring(0,j);
i=s1.length();
result=Math.pow(10,i);
result=f/result;
f=Long.parseLong(s2,10);
if(f>=0)
result=(double)(result+f);
else
result=(double)(f-result);
}
else
result=(double)(Long.parseLong(s));
}
else
{
j=s.indexOf('.');;
s1=s.substring(j+1,k);
f=Long.parseLong(s1,10);
s2=s.substring(0,j);
i=s1.length();
result=Math.pow(10,i);
result=(double)(f/result);
f=Long.parseLong(s2,10);
if(f>=0)
result=(double)(result+f);
else
result=(double)(f-result);
s3=s.substring(k+1);
f2=Long.parseLong(s3,10);
if(f2>0)
result=(double)(result*Math.pow(10,f2));
else
result=(double)(result/Math.pow(10,-f2));
}
}catch (Exception e){
System.err.println(e.getMessage());
}
return result;
}
//----------------------------------------------------------------------------
void if_thero() {
if(((textFieldDisplay.getText().compareTo("0"))==0)||(flagErase!=0))
{ textFieldDisplay.setText("");
flagErase = 0;
}
}
//----------------------------------------------------------------------------
//--------------------Обработчики событий-------------------------------------
void buttonC_actionPerformed(ActionEvent e) {
textFieldDisplay.setText("0");
Acum=0.0;Op=0;oldOp=0;flagOp=0;
}
void buttonComma_actionPerformed(ActionEvent e) {
if(flagOp==1)
textFieldDisplay.setText("0.");
if(textFieldDisplay.getText().indexOf(".")==-1)
{
textFieldDisplay.setText(textFieldDisplay.getText()+".");
flagOp=0;
}
}
void button0_actionPerformed(ActionEvent e) {
if_thero();
textFieldDisplay.setText(textFieldDisplay.getText()+"0");
flagOp=0;
}
void button1_actionPerformed(ActionEvent e) {
if_thero();
textFieldDisplay.setText(textFieldDisplay.getText()+"1");
flagOp=0;
}
void button2_actionPerformed(ActionEvent e) {
if_thero();
textFieldDisplay.setText(textFieldDisplay.getText()+"2");
flagOp=0;
}
void buttonCS_actionPerformed(ActionEvent e) {
if(textFieldDisplay.getText().substring(0,1).equals("-"))
textFieldDisplay.setText(textFieldDisplay.getText().substring(1));
else
textFieldDisplay.setText("-"+textFieldDisplay.getText());
}
void button3_actionPerformed(ActionEvent e) {
if_thero();
textFieldDisplay.setText(textFieldDisplay.getText()+"3");
flagOp=0;
}
void button4_actionPerformed(ActionEvent e) {
if_thero();
textFieldDisplay.setText(textFieldDisplay.getText()+"4");
flagOp=0;
}
void button5_actionPerformed(ActionEvent e) {
if_thero();
textFieldDisplay.setText(textFieldDisplay.getText()+"5");
flagOp=0;
}
void button6_actionPerformed(ActionEvent e) {
if_thero();
textFieldDisplay.setText(textFieldDisplay.getText()+"6");
flagOp=0;
}
void button7_actionPerformed(ActionEvent e) {
if_thero();
textFieldDisplay.setText(textFieldDisplay.getText()+"7");
flagOp=0;
}
void button8_actionPerformed(ActionEvent e) {
if_thero();
textFieldDisplay.setText(textFieldDisplay.getText()+"8");
flagOp=0;
}
void button9_actionPerformed(ActionEvent e) {
if_thero();
textFieldDisplay.setText(textFieldDisplay.getText()+"9");
flagOp=0;
}
void buttonPl_actionPerformed(ActionEvent e) {
if ((Op!=0)&&(flagOp==0)) doCalc();
Acum = parseDouble(textFieldDisplay.getText());
Op=1;flagErase=1;flagOp=1;
}
void buttonMin_actionPerformed(ActionEvent e) {
if ((Op!=0)&&(flagOp==0)) doCalc();
Acum = parseDouble(textFieldDisplay.getText());
Op=2;flagErase=1;flagOp=1;
}
void buttonMul_actionPerformed(ActionEvent e) {
if ((Op!=0)&&(flagOp==0)) doCalc();
Acum = parseDouble(textFieldDisplay.getText());
Op=3;flagErase=1;flagOp=1;
}
void buttonDiv_actionPerformed(ActionEvent e) {
if ((Op!=0)&&(flagOp==0)) doCalc();
Acum = parseDouble(textFieldDisplay.getText());
Op=4;flagErase=1;flagOp=1;
}
void buttonM1_actionPerformed(ActionEvent e) {
textFieldDisplay.setText(textFieldMemory1.getText());
flagOp=0;
}
void buttonM2_actionPerformed(ActionEvent e) {
textFieldDisplay.setText(textFieldMemory2.getText());
flagOp=0;
}
void buttonM3_actionPerformed(ActionEvent e) {
textFieldDisplay.setText(textFieldMemory3.getText());
flagOp=0;
}
void buttonM4_actionPerformed(ActionEvent e) {
textFieldDisplay.setText(textFieldMemory4.getText());
flagOp=0;
}
void buttonM5_actionPerformed(ActionEvent e) {
textFieldDisplay.setText(textFieldMemory5.getText());
flagOp=0;
}
void buttonM6_actionPerformed(ActionEvent e) {
textFieldDisplay.setText(textFieldMemory6.getText());
flagOp=0;
}
void buttonM7_actionPerformed(ActionEvent e) {
textFieldDisplay.setText(textFieldMemory7.getText());
flagOp=0;
}
void buttonM8_actionPerformed(ActionEvent e) {
textFieldDisplay.setText(textFieldMemory8.getText());
flagOp=0;
}
void buttonM9_actionPerformed(ActionEvent e) {
textFieldDisplay.setText(textFieldMemory9.getText());
flagOp=0;
}
void buttonM10_actionPerformed(ActionEvent e) {
textFieldDisplay.setText(textFieldMemory10.getText());
flagOp=0;
}
void buttonEq_actionPerformed(ActionEvent e) {
doCalc();
flagOp=0;
}
}