package vision;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Calculadora extends JFrame {
public Calculadora() {
number = "";
num1 = 0.0D;
num2 = 0.0D;
answer = 0.0D;
memo = 0.0D;
optr = ' ';
isNewNum = true;
isDecimal = false;
isOptr = false;
isSetNum1 = true;
isSetNum2 = true;
initComponents();
setLocationRelativeTo(null);
}
public void number() {
number = txtScreen.getText();
}
public void printNum(String numStr) {
number();
if (number.length() < 33) {
if (isNewNum || !isDecimal && number.equals("0."))
txtScreen.setText((new StringBuilder(String.valueOf(numStr)))
.append(".").toString());
else if (isDecimal)
txtScreen.setText((new StringBuilder(String.valueOf(number)))
.append(numStr).toString());
else
txtScreen.setText((new StringBuilder(String.valueOf(slice(
number, 0, number.length() - 1)))).append(numStr)
.append(".").toString());
isNewNum = false;
isOptr = false;
}
}
public String slice(String num, int start, int len) {
String newNum = "";
for (int i = start; i < start + len; i++)
newNum = (new StringBuilder(String.valueOf(newNum))).append(
String.valueOf(num.charAt(i))).toString();
return newNum;
}
public void setOptr(char optr) {
this.optr = optr;
}
public void setNum1() {
try {
number();
double num1 = Double.valueOf(number).doubleValue();
if (isSetNum1) {
this.num1 = num1;
isSetNum1 = false;
isSetNum2 = true;
} else {
switch (optr) {
case 43: // '+'
this.num1 += num1;
break;
case 45: // '-'
this.num1 -= num1;
break;
case 42: // '*'
this.num1 *= num1;
break;
case 47: // '/'
this.num1 /= num1;
break;
}
}
isNewNum = true;
isDecimal = false;
isOptr = true;
} catch (Exception ex) {
errorMngr();
}
}
public void setAnswer() {
try {
number();
if (isSetNum2) {
num2 = Double.valueOf(number).doubleValue();
isSetNum1 = true;
isSetNum2 = false;
} else {
num1 = Double.valueOf(number).doubleValue();
}
switch (optr) {
case 43: // '+'
answer = num1 + num2;
break;
case 45: // '-'
answer = num1 - num2;
break;
case 42: // '*'
answer = num1 * num2;
break;
case 47: // '/'
answer = num1 / num2;
break;
}
isNewNum = true;
isDecimal = false;
isOptr = false;
} catch (Exception ex) {
errorMngr();
}
}
public void printToScreen(String numStr) {
if (slice(numStr, numStr.length() - 2, 2).equals(".0"))
numStr = slice(numStr, 0, numStr.length() - 1);
txtScreen.setText(numStr);
}
public void errorMngr() {
if (lblMemo.getText().equals("M"))
lblMemo.setText("E/M");
else
lblMemo.setText("E");
lblMemo.setForeground(Color.RED);
btnAdd.setEnabled(false);
btnBackspace.setEnabled(false);
btnCE.setEnabled(false);
btnDecimal.setEnabled(false);
btnDiv.setEnabled(false);
btnEquals.setEnabled(false);
btnMC.setEnabled(false);
btnMPlus.setEnabled(false);
btnMR.setEnabled(false);
btnMS.setEnabled(false);
btnMul.setEnabled(false);
btnNum0.setEnabled(false);
btnNum1.setEnabled(false);
btnNum2.setEnabled(false);
btnNum3.setEnabled(false);
btnNum4.setEnabled(false);
btnNum5.setEnabled(false);
btnNum6.setEnabled(false);
btnNum7.setEnabled(false);
btnNum8.setEnabled(false);
btnNum9.setEnabled(false);
btnOneDivX.setEnabled(false);
btnPercent.setEnabled(false);
btnPosNeg.setEnabled(false);
btnSqrt.setEnabled(false);
btnSub.setEnabled(false);
}
private void initComponents() {
txtScreen = new JTextField();
lblMemo = new JLabel();
btnMC = new JButton();
btnMR = new JButton();
btnMS = new JButton();
btnMPlus = new JButton();
btnBackspace = new JButton();
btnCE = new JButton();
btnC = new JButton();
btnNum8 = new JButton();
btnNum9 = new JButton();
btnDiv = new JButton();
btnSqrt = new JButton();
btnNum7 = new JButton();
btnNum4 = new JButton();
btnNum5 = new JButton();
btnNum6 = new JButton();
btnMul = new JButton();
btnPercent = new JButton();
btnOneDivX = new JButton();
btnSub = new JButton();
btnNum3 = new JButton();
btnNum2 = new JButton();
btnNum1 = new JButton();
btnNum0 = new JButton();
btnPosNeg = new JButton();
btnDecimal = new JButton();
btnAdd = new JButton();
btnEquals = new JButton();
setTitle("Calculadora");
setBounds(new Rectangle(100, 100, 0, 0));
setResizable(false);
setIconImage(Toolkit.getDefaultToolkit().getImage("icons/calc3.jpeg"));
txtScreen.setEditable(false);
txtScreen.setFont(new Font("Tahoma", 0, 12));
txtScreen.setHorizontalAlignment(4);
txtScreen.setText("0.");
lblMemo.setForeground(new Color(0, 0, 204));
lblMemo.setHorizontalAlignment(0);
lblMemo.setBorder(BorderFactory.createBevelBorder(1));
btnMC.setForeground(new Color(255, 0, 0));
btnMC.setText("MC");
btnMC.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnMC.setFocusPainted(false);
btnMC.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnMCActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnMR.setForeground(new Color(255, 0, 0));
btnMR.setText("MR");
btnMR.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnMR.setFocusPainted(false);
btnMR.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnMRActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnMS.setForeground(new Color(255, 0, 0));
btnMS.setText("M-");
btnMS.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnMS.setFocusPainted(false);
btnMS.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnMSActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnMPlus.setForeground(new Color(255, 0, 0));
btnMPlus.setText("M+");
btnMPlus.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnMPlus.setFocusPainted(false);
btnMPlus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnMPlusActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnBackspace.setForeground(new Color(255, 0, 0));
btnBackspace.setText("Backspace");
btnBackspace.setBorder(BorderFactory
.createLineBorder(new Color(0, 0, 0)));
btnBackspace.setFocusPainted(false);
btnBackspace.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnBackspaceActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnCE.setForeground(new Color(255, 0, 0));
btnCE.setText("CE");
btnCE.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnCE.setFocusPainted(false);
btnCE.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnCEActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnC.setForeground(new Color(255, 0, 0));
btnC.setText("C");
btnC.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnC.setFocusPainted(false);
btnC.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnCActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnNum8.setForeground(new Color(0, 0, 255));
btnNum8.setText("8");
btnNum8.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnNum8.setFocusPainted(false);
btnNum8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnNum8ActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnNum9.setForeground(new Color(0, 0, 255));
btnNum9.setText("9");
btnNum9.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnNum9.setFocusPainted(false);
btnNum9.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnNum9ActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnDiv.setFont(new Font("Tahoma", 0, 10));
btnDiv.setForeground(new Color(255, 0, 0));
btnDiv.setText("/");
btnDiv.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnDiv.setFocusPainted(false);
btnDiv.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnDivActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnSqrt.setForeground(new Color(0, 0, 255));
btnSqrt.setText("Sqrt");
btnSqrt.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnSqrt.setFocusPainted(false);
btnSqrt.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnSqrtActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnNum7.setForeground(new Color(0, 0, 255));
btnNum7.setText("7");
btnNum7.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnNum7.setFocusPainted(false);
btnNum7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnNum7ActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnNum4.setForeground(new Color(0, 0, 255));
btnNum4.setText("4");
btnNum4.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnNum4.setFocusPainted(false);
btnNum4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnNum4ActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnNum5.setForeground(new Color(0, 0, 255));
btnNum5.setText("5");
btnNum5.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnNum5.setFocusPainted(false);
btnNum5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnNum5ActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnNum6.setForeground(new Color(0, 0, 255));
btnNum6.setText("6");
btnNum6.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnNum6.setFocusPainted(false);
btnNum6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnNum6ActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnMul.setForeground(new Color(255, 0, 0));
btnMul.setText("*");
btnMul.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnMul.setFocusPainted(false);
btnMul.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnMulActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnPercent.setForeground(new Color(0, 0, 255));
btnPercent.setText("%");
btnPercent
.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnPercent.setFocusPainted(false);
btnPercent.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnPercentActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnOneDivX.setForeground(new Color(0, 0, 255));
btnOneDivX.setText("1/x");
btnOneDivX
.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnOneDivX.setFocusPainted(false);
btnOneDivX.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnOneDivXActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnSub.setForeground(new Color(255, 0, 0));
btnSub.setText("-");
btnSub.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnSub.setFocusPainted(false);
btnSub.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnSubActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnNum3.setForeground(new Color(0, 0, 255));
btnNum3.setText("3");
btnNum3.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnNum3.setFocusPainted(false);
btnNum3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnNum3ActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnNum2.setForeground(new Color(0, 0, 255));
btnNum2.setText("2");
btnNum2.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnNum2.setFocusPainted(false);
btnNum2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnNum2ActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnNum1.setForeground(new Color(0, 0, 255));
btnNum1.setText("1");
btnNum1.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnNum1.setFocusPainted(false);
btnNum1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnNum1ActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnNum0.setForeground(new Color(0, 0, 255));
btnNum0.setText("0");
btnNum0.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnNum0.setFocusPainted(false);
btnNum0.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnNum0ActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnPosNeg.setFont(new Font("Tahoma", 0, 10));
btnPosNeg.setForeground(new Color(0, 0, 255));
btnPosNeg.setText("+/-");
btnPosNeg.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnPosNeg.setFocusPainted(false);
btnPosNeg.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnPosNegActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnDecimal.setFont(new Font("Tahoma", 1, 12));
btnDecimal.setForeground(new Color(0, 0, 255));
btnDecimal.setText(".");
btnDecimal
.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnDecimal.setFocusPainted(false);
btnDecimal.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnDecimalActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnAdd.setForeground(new Color(255, 0, 0));
btnAdd.setText("+");
btnAdd.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnAdd.setFocusPainted(false);
btnAdd.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnAddActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
btnEquals.setForeground(new Color(255, 0, 0));
btnEquals.setText("=");
btnEquals.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
btnEquals.setFocusPainted(false);
btnEquals.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnEqualsActionPerformed(evt);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
});
GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout
.setHorizontalGroup(layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout
.createSequentialGroup()
.addContainerGap()
.addGroup(
layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout
.createSequentialGroup()
.addComponent(
btnMC,
-2,
36,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(
btnNum7,
-2,
36,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED,
7,
32767)
.addComponent(
btnNum8,
-2,
36,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
btnNum9,
-2,
36,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
btnDiv,
-2,
36,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
btnSqrt,
-2,
36,
-2))
.addGroup(
layout
.createSequentialGroup()
.addComponent(
btnMR,
-2,
36,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(
btnNum4,
-2,
36,
-2)
.addGap(
7,
7,
7)
.addComponent(
btnNum5,
-2,
36,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
btnNum6,
-2,
36,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
btnMul,
-2,
36,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
btnPercent,
-2,
36,
-2))
.addGroup(
layout
.createSequentialGroup()
.addComponent(
btnMS,
-2,
36,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(
btnNum1,
-2,
36,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
btnNum2,
-2,
36,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
btnNum3,
-2,
36,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
btnSub,
-2,
36,
-2)
.addGap(
7,
7,
7)
.addComponent(
btnOneDivX,
-2,
36,
-2))
.addGroup(
layout
.createSequentialGroup()
.addComponent(
btnMPlus,
-2,
36,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(
btnNum0,
-2,
36,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
btnPosNeg,
-2,
36,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
btnDecimal,
-2,
36,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
btnAdd,
-2,
36,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
btnEquals,
-2,
36,
-2)
.addGap(
1,
1,
1))
.addComponent(
txtScreen,
javax.swing.GroupLayout.Alignment.TRAILING,
-1, 251, 32767)
.addGroup(
javax.swing.GroupLayout.Alignment.TRAILING,
layout
.createSequentialGroup()
.addComponent(
lblMemo,
-1,
36,
32767)
.addGap(
10,
10,
10)
.addComponent(
btnBackspace,
-1,
73,
32767)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
btnCE,
-2,
60,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
btnC,
-2,
60,
-2)))
.addContainerGap()));
layout
.setVerticalGroup(layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout
.createSequentialGroup()
.addContainerGap()
.addComponent(txtScreen, -2, 30, -2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(
layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout
.createSequentialGroup()
.addGap(
1,
1,
1)
.addComponent(
lblMemo,
-2,
31,
-2)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(
layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(
btnMC,
-2,
32,
-2)
.addComponent(
btnSqrt,
-2,
32,
-2)
.addComponent(
btnDiv,
-2,
32,
-2)
.addComponent(
btnNum9,
-2,
32,
-2)
.addComponent(
btnNum8,
-2,
32,
-2)
.addComponent(
btnNum7,
-2,
32,
-2))
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(
layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(
btnMR,
-2,
32,
-2)
.addComponent(
btnPercent,
-2,
32,
-2)
.addComponent(
btnMul,
-2,
32,
-2)
.addComponent(
btnNum6,
-2,
32,
-2)
.addComponent(
btnNum5,
-2,
32,
-2)
.addComponent(
btnNum4,
-2,
32,
-2))
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(
layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(
btnMS,
-2,
32,
-2)
.addComponent(
btnNum1,
-2,
32,
-2)
.addComponent(
btnNum2,
-2,
32,
-2)
.addComponent(
btnNum3,
-2,
32,
-2)
.addComponent(
btnSub,
-2,
32,
-2)
.addComponent(
btnOneDivX,
-2,
32,
-2)))
.addGroup(
layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(
btnC,
-2,
32,
-2)
.addComponent(
btnCE,
-2,
32,
-2)
.addComponent(
btnBackspace,
-2,
32,
-2)))
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(
layout
.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnMPlus,
-2, 32, -2)
.addComponent(btnNum0,
-2, 32, -2)
.addComponent(
btnPosNeg, -2,
32, -2)
.addComponent(
btnDecimal, -2,
32, -2)
.addComponent(btnAdd,
-2, 32, -2)
.addComponent(
btnEquals, -2,
32, -2))
.addContainerGap(-1, 32767)));
pack();
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
}
@SuppressWarnings("unused")
final Calculadora this$0;
{
this$0 = Calculadora.this;
}
};
KeyStroke stroke = KeyStroke.getKeyStroke(27, 0);
((JComponent) getContentPane()).registerKeyboardAction(actionListener,
stroke, 2);
((JComponent) getContentPane()).registerKeyboardAction(actionListener,
stroke, 2);
}
private void btnNum0ActionPerformed(ActionEvent evt) {
number();
if (!number.equals("0."))
printNum("0");
}
private void btnNum1ActionPerformed(ActionEvent evt) {
printNum("1");
}
private void btnNum2ActionPerformed(ActionEvent evt) {
printNum("2");
}
private void btnNum3ActionPerformed(ActionEvent evt) {
printNum("3");
}
private void btnNum4ActionPerformed(ActionEvent evt) {
printNum("4");
}
private void btnNum5ActionPerformed(ActionEvent evt) {
printNum("5");
}
private void btnNum6ActionPerformed(ActionEvent evt) {
printNum("6");
}
private void btnNum7ActionPerformed(ActionEvent evt) {
printNum("7");
}
private void btnNum8ActionPerformed(ActionEvent evt) {
printNum("8");
}
private void btnNum9ActionPerformed(ActionEvent evt) {
printNum("9");
}
private void btnDecimalActionPerformed(ActionEvent evt) {
if (!isDecimal) {
isDecimal = true;
isNewNum = false;
}
}
private void btnPosNegActionPerformed(ActionEvent evt) {
number();
double numDou = 0.0D;
if (!number.equals("0.")) {
numDou = Double.valueOf(number).doubleValue() * -1D;
printToScreen(String.valueOf(numDou));
}
}
private void btnBackspaceActionPerformed(ActionEvent evt) {
number();
if (isDecimal && number.charAt(number.length() - 1) == '.')
isDecimal = false;
else if (isDecimal && number.charAt(number.length() - 1) != '.')
txtScreen.setText(slice(number, 0, number.length() - 1));
else if (number.length() == 2) {
txtScreen.setText("0.");
isNewNum = true;
} else {
txtScreen.setText((new StringBuilder(String.valueOf(slice(number,
0, number.length() - 2)))).append(".").toString());
}
}
private void btnCEActionPerformed(ActionEvent evt) {
txtScreen.setText("0.");
isNewNum = true;
isDecimal = false;
isOptr = false;
}
private void btnCActionPerformed(ActionEvent evt) {
txtScreen.setText("0.");
number = "";
num1 = 0.0D;
num2 = 0.0D;
answer = 0.0D;
optr = ' ';
isNewNum = true;
isDecimal = false;
isOptr = false;
isSetNum1 = true;
isSetNum2 = true;
if (lblMemo.getText().equals("E/M"))
lblMemo.setText("M");
else if (lblMemo.getText().equals("E"))
lblMemo.setText("");
lblMemo.setForeground(Color.BLUE);
btnAdd.setEnabled(true);
btnBackspace.setEnabled(true);
btnCE.setEnabled(true);
btnDecimal.setEnabled(true);
btnDiv.setEnabled(true);
btnEquals.setEnabled(true);
btnMC.setEnabled(true);
btnMPlus.setEnabled(true);
btnMR.setEnabled(true);
btnMS.setEnabled(true);
btnMul.setEnabled(true);
btnNum0.setEnabled(true);
btnNum1.setEnabled(true);
btnNum2.setEnabled(true);
btnNum3.setEnabled(true);
btnNum4.setEnabled(true);
btnNum5.setEnabled(true);
btnNum6.setEnabled(true);
btnNum7.setEnabled(true);
btnNum8.setEnabled(true);
btnNum9.setEnabled(true);
btnOneDivX.setEnabled(true);
btnPercent.setEnabled(true);
btnPosNeg.setEnabled(true);
btnSqrt.setEnabled(true);
btnSub.setEnabled(true);
}
private void btnAddActionPerformed(ActionEvent evt) {
if (!isOptr) {
setNum1();
printToScreen(String.valueOf(num1));
}
optr = '+';
}
private void btnSubActionPerformed(ActionEvent evt) {
if (!isOptr) {
setNum1();
printToScreen(String.valueOf(num1));
}
optr = '-';
}
private void btnMulActionPerformed(ActionEvent evt) {
if (!isOptr) {
setNum1();
printToScreen(String.valueOf(num1));
}
optr = '*';
}
private void btnDivActionPerformed(ActionEvent evt) {
if (!isOptr) {
setNum1();
printToScreen(String.valueOf(num1));
}
optr = '/';
}
private void btnEqualsActionPerformed(ActionEvent evt) {
if (!isSetNum1 || !isSetNum2) {
setAnswer();
printToScreen(String.valueOf(answer));
}
}
private void btnSqrtActionPerformed(ActionEvent evt) {
try {
number();
double numDou = Double.valueOf(number).doubleValue();
printToScreen(String.valueOf(Math.sqrt(numDou)));
isNewNum = true;
isDecimal = false;
isOptr = false;
} catch (Exception ex) {
errorMngr();
}
}
private void btnPercentActionPerformed(ActionEvent evt) {
try {
number();
double numDou = 0.0D;
double percent = 0.0D;
if (!isSetNum1 && isSetNum2)
numDou = num1;
else if (isSetNum1 && !isSetNum2)
numDou = answer;
else
numDou = 0.0D;
percent = (Double.valueOf(number).doubleValue() * numDou) / 100D;
printToScreen(String.valueOf(percent));
isNewNum = true;
isDecimal = false;
isOptr = false;
} catch (Exception ex) {
errorMngr();
}
}
private void btnOneDivXActionPerformed(ActionEvent evt) {
try {
number();
double numDou = Double.valueOf(number).doubleValue();
numDou = 1.0D / numDou;
printToScreen(String.valueOf(numDou));
isNewNum = true;
isDecimal = false;
isOptr = false;
} catch (Exception ex) {
errorMngr();
}
}
private void btnMPlusActionPerformed(ActionEvent evt) {
try {
if (!isSetNum1 && isSetNum2) {
setAnswer();
printToScreen(String.valueOf(answer));
}
memo += Double.valueOf(txtScreen.getText()).doubleValue();
lblMemo.setText("M");
isNewNum = true;
isDecimal = false;
isOptr = false;
} catch (Exception ex) {
errorMngr();
}
}
private void btnMSActionPerformed(ActionEvent evt) {
try {
if (!isSetNum1 && isSetNum2) {
setAnswer();
printToScreen(String.valueOf(answer));
}
memo -= Double.valueOf(txtScreen.getText()).doubleValue();
lblMemo.setText("M");
isNewNum = true;
isDecimal = false;
isOptr = false;
} catch (Exception ex) {
errorMngr();
}
}
private void btnMRActionPerformed(ActionEvent evt) {
printToScreen(String.valueOf(memo));
isNewNum = true;
isDecimal = false;
isOptr = false;
}
private void btnMCActionPerformed(ActionEvent evt) {
lblMemo.setText("");
memo = 0.0D;
}
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
public void run() {
(new Calculadora()).setVisible(true);
}
});
}
private static final long serialVersionUID = 1L;
private String number;
private double num1;
private double num2;
private double answer;
private double memo;
private char optr;
private boolean isNewNum;
private boolean isDecimal;
private boolean isOptr;
private boolean isSetNum1;
private boolean isSetNum2;
private JButton btnAdd;
private JButton btnBackspace;
private JButton btnC;
private JButton btnCE;
private JButton btnDecimal;
private JButton btnDiv;
private JButton btnEquals;
private JButton btnMC;
private JButton btnMPlus;
private JButton btnMR;
private JButton btnMS;
private JButton btnMul;
private JButton btnNum0;
private JButton btnNum1;
private JButton btnNum2;
private JButton btnNum3;
private JButton btnNum4;
private JButton btnNum5;
private JButton btnNum6;
private JButton btnNum7;
private JButton btnNum8;
private JButton btnNum9;
private JButton btnOneDivX;
private JButton btnPercent;
private JButton btnPosNeg;
private JButton btnSqrt;
private JButton btnSub;
private JLabel lblMemo;
private JTextField txtScreen;
}