Execute BigInteger applet example
Java code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.Math.*;
import java.math.BigInteger;
public class BigIntCalc extends JApplet implements ActionListener{
JLabel lN1, lN2;
JTextField tN1, tN2;
JButton btnAdd,btnSub,btnMul,btnDiv,btnClear; JTextArea outArea;
public void init(){
Box box=Box.createVerticalBox();
// input
lN1=new JLabel("Input first number"); box.add(lN1);
tN1=new JTextField(100); tN1.setEditable(true); box.add(tN1);
lN2=new JLabel("Input second number"); box.add(lN2);
tN2=new JTextField(100); tN2.setEditable(true); box.add(tN2);
// buttons
btnAdd=new JButton("+"); btnAdd.addActionListener(this); box.add(btnAdd);
btnSub=new JButton("-"); btnSub.addActionListener(this); box.add(btnSub);
btnMul=new JButton("*"); btnMul.addActionListener(this); box.add(btnMul);
btnDiv=new JButton("/"); btnDiv.addActionListener(this); box.add(btnDiv);
btnClear=new JButton("Clear"); btnClear.addActionListener(this); box.add(btnClear);
// Output
String desc="This is a rudimentary arbitrary precision integer calculator\n";
outArea=new JTextArea(desc,30,60);
ScrollPane scrollPane=new ScrollPane();
scrollPane.add(outArea);
box.add(scrollPane);
Container c=getContentPane();
c.add(box);
setSize(600,300);
setVisible(true);
showStatus("Enter operands and operator");
}
public void actionPerformed(ActionEvent actionEvent){
if(actionEvent.getSource()==btnClear){
outArea.selectAll(); outArea.cut();
} else {
String sN1=tN1.getText(), sN2=tN2.getText(), sOp="";
if(sN1.equals("")){sN1="0"; showStatus("Enter first operand");} else
if(sN2.equals("")){sN2="0"; showStatus("Enter second operand");} else
{ showStatus("Select operator or Clear");}
BigInteger bN1=new BigInteger(sN1);
BigInteger bN2=new BigInteger(sN2);
BigInteger bRes=BigInteger.ZERO, bResDiv[]={BigInteger.ZERO,BigInteger.ZERO};
BigInteger bRemainder=BigInteger.ZERO;
if(actionEvent.getSource()==btnAdd){bRes=bN1.add(bN2); sOp=" + ";}
if(actionEvent.getSource()==btnSub){bRes=bN1.subtract(bN2); sOp=" - ";}
if(actionEvent.getSource()==btnMul){bRes=bN1.multiply(bN2); sOp=" * ";}
if(actionEvent.getSource()==btnDiv){sOp=" / ";
if(bN2.signum()!=0)bResDiv=bN1.divideAndRemainder(bN2);
bRes=bResDiv[0]; bRemainder=bResDiv[1];
}
if(sOp.equals(" / ") && bN2.signum()==0){
showStatus("Cannot divide by zero");
} else {
outArea.append(bN1.toString() + sOp+bN2.toString() + " = " + bRes.toString() + "\n");
if(actionEvent.getSource()==btnDiv)outArea.append("Remainder = "+bRemainder.toString()+"\n");
showStatus("Calculations completed");
}
}
}
}