public class Calculadora {
private JFrame frmNossaCalculadora;
private JTextField textFieldResultado;
private TipoDeOperacao tipoOp = TipoDeOperacao.INDEFINIDO;
double numero1;
double numero2;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Calculadora window = new Calculadora();
window.frmNossaCalculadora.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Calculadora() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frmNossaCalculadora = new JFrame();
frmNossaCalculadora.setTitle("Calculadora");
frmNossaCalculadora.setMinimumSize(new Dimension(367, 441));
frmNossaCalculadora.setBounds(600, 300, 367, 441);
frmNossaCalculadora.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmNossaCalculadora.getContentPane().setLayout(new MigLayout("", "[30:30,grow][30:30,grow][30:30,grow][30:30,grow][30:30,grow]", "[60:60,grow][60:60,grow][60:60,grow][60:60,grow][60:60,grow][60:60,grow]"));
textFieldResultado = new JTextField();
textFieldResultado.setText("0");
textFieldResultado.setFont(new Font("Tahoma", Font.PLAIN, 26));
textFieldResultado.setEditable(false);
textFieldResultado.setHorizontalAlignment(SwingConstants.RIGHT);
frmNossaCalculadora.getContentPane().add(textFieldResultado, "cell 0 0 5 1,growx");
textFieldResultado.setColumns(10);
JButton btnDeletar = new JButton("Deletar");
btnDeletar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(textFieldResultado.getDocument().getLength()>0) {
//textFieldResultado.setText(textFieldResultado.getText().substring(0, textFieldResultado.getText ().length() - 1));
String textFieldResultadoValorAtual = textFieldResultado.getText();
int tamanhoDaString = textFieldResultadoValorAtual.length();
String textFieldResultadoNovoValorAposRemocao = textFieldResultadoValorAtual.substring(0,tamanhoDaString-1);
textFieldResultado.setText(textFieldResultadoNovoValorAposRemocao);
}
}
});
frmNossaCalculadora.getContentPane().add(btnDeletar, "cell 0 1 2 1,grow");
}
});
frmNossaCalculadora.getContentPane().add(btnLimpar, "cell 2 1 3 1,grow");
JButton btn7 = new JButton("7");
btn7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(textFieldResultado.getText().equals("0")) {
textFieldResultado.setText("7");
} else {
textFieldResultado.setText(textFieldResultado.getText()+"7");
}
}
});
frmNossaCalculadora.getContentPane().add(btn7, "cell 0 2,grow");
JButton btn8 = new JButton("8");
btn8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(textFieldResultado.getText().equals("0")) {
textFieldResultado.setText("8");
} else {
textFieldResultado.setText(textFieldResultado.getText()+"8");
}
}
});
frmNossaCalculadora.getContentPane().add(btn8, "cell 1 2,grow");
JButton btn9 = new JButton("9");
btn9.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(textFieldResultado.getText().equals("0")) {
textFieldResultado.setText("9");
} else {
textFieldResultado.setText(textFieldResultado.getText()+"9");
}
}
});
frmNossaCalculadora.getContentPane().add(btn9, "cell 2 2,grow");
JButton btnOperadorDivisao = new JButton("/");
btnOperadorDivisao.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//etapa 1 - armazenar o valor que estiver na JTextField
String stringLidaDoResultado = textFieldResultado.getText();
//etapa 2 - converter o numero1 (string) para o double
try {
numero1 = Double.parseDouble(stringLidaDoResultado);
} catch(NumberFormatException e1) {
textFieldResultado.setText("Número inválido !!! Pressione Limpar");
}
//etapa 3 - armazenar o operador que o usuário selecionou
tipoOp = TipoDeOperacao.DIVISAO;
//etapa 4 - Limpar o JTexField do resultado
textFieldResultado.setText("0");
}
});
frmNossaCalculadora.getContentPane().add(btnOperadorDivisao, "cell 3 2,grow");
JButton btnOperadorElevaQuadrado = new JButton("x^2");
btnOperadorElevaQuadrado.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//etapa 1 - armazenar o valor que estiver na JTextField
String stringLidaDoResultado = textFieldResultado.getText();
//etapa 2 - converter o numero1 (string) para o double
try {
numero1 = Double.parseDouble(stringLidaDoResultado);
} catch(NumberFormatException e1) {
textFieldResultado.setText("Número inválido !!! Pressione Limpar");
}
//etapa 3 - armazenar o operador que o usuário selecionou
tipoOp = TipoDeOperacao.ELEVADO_AO_QUADRADO;
//etapa 4 - Limpar o JTexField do resultado
textFieldResultado.setText("0");
}
});
frmNossaCalculadora.getContentPane().add(btnOperadorElevaQuadrado, "cell 4 2,grow");
JButton btn4 = new JButton("4");
btn4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(textFieldResultado.getText().equals("0")) {
textFieldResultado.setText("4");
} else {
textFieldResultado.setText(textFieldResultado.getText()+"4");
}
}
});
frmNossaCalculadora.getContentPane().add(btn4, "cell 0 3,grow");
JButton btn5 = new JButton("5");
btn5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(textFieldResultado.getText().equals("0")) {
textFieldResultado.setText("5");
} else {
textFieldResultado.setText(textFieldResultado.getText()+"5");
}
}
});
frmNossaCalculadora.getContentPane().add(btn5, "cell 1 3,grow");
JButton btn6 = new JButton("6");
btn6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(textFieldResultado.getText().equals("0")) {
textFieldResultado.setText("6");
} else {
textFieldResultado.setText(textFieldResultado.getText()+"6");
}
}
});
frmNossaCalculadora.getContentPane().add(btn6, "cell 2 3,grow");
JButton btnOperadorMultiplicacao = new JButton("*");
btnOperadorMultiplicacao.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//etapa 1 - armazenar o valor que estiver na JTextField
String stringLidaDoResultado = textFieldResultado.getText();
//etapa 2 - converter o numero1 (string) para o double
try {
numero1 = Double.parseDouble(stringLidaDoResultado);
} catch(NumberFormatException e1) {
textFieldResultado.setText("Número inválido !!! Pressione Limpar");
}
//etapa 3 - armazenar o operador que o usuário selecionou
tipoOp = TipoDeOperacao.MUTIPLICACAO;
//etapa 4 - Limpar o JTexField do resultado
textFieldResultado.setText("0");
}
});
frmNossaCalculadora.getContentPane().add(btnOperadorMultiplicacao, "cell 3 3,grow");
JButton btnOperadorUmSobre = new JButton("1/x");
btnOperadorUmSobre.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//etapa 1 - armazenar o valor que estiver na JTextField
String stringLidaDoResultado = textFieldResultado.getText();
//etapa 2 - converter o numero1 (string) para o double
try {
numero1 = Double.parseDouble(stringLidaDoResultado);
} catch(NumberFormatException e1) {
textFieldResultado.setText("Número inválido !!! Pressione Limpar");
}
//etapa 3 - armazenar o operador que o usuário selecionou
tipoOp = TipoDeOperacao.DIVIDIDO_POR_UM;
//etapa 4 - Limpar o JTexField do resultado
textFieldResultado.setText("0");
}
});
frmNossaCalculadora.getContentPane().add(btnOperadorUmSobre, "cell 4 3,grow");
JButton btn1 = new JButton("1");
btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(textFieldResultado.getText().equals("0")) {
textFieldResultado.setText("1");
} else {
textFieldResultado.setText(textFieldResultado.getText()+"1");
}
}
});
frmNossaCalculadora.getContentPane().add(btn1, "cell 0 4,grow");
JButton btn2 = new JButton("2");
btn2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(textFieldResultado.getText().equals("0")) {
textFieldResultado.setText("2");
} else {
textFieldResultado.setText(textFieldResultado.getText()+"2");
}
}
});
frmNossaCalculadora.getContentPane().add(btn2, "cell 1 4,grow");
JButton btn3 = new JButton("3");
btn3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(textFieldResultado.getText().equals("0")) {
textFieldResultado.setText("3");
} else {
textFieldResultado.setText(textFieldResultado.getText()+"3");
}
}
});
frmNossaCalculadora.getContentPane().add(btn3, "cell 2 4,grow");
JButton btnOperadorSubtracao = new JButton("-");
btnOperadorSubtracao.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//etapa 1 - armazenar o valor que estiver na JTextField
String stringLidaDoResultado = textFieldResultado.getText();
//etapa 2 - converter o numero1 (string) para o double
try {
numero1 = Double.parseDouble(stringLidaDoResultado);
} catch(NumberFormatException e1) {
textFieldResultado.setText("Número inválido !!! Pressione Limpar");
}
//etapa 3 - armazenar o operador que o usuário selecionou
tipoOp = TipoDeOperacao.SUBTRACAO;
//etapa 4 - Limpar o JTexField do resultado
textFieldResultado.setText("0");
}
});
frmNossaCalculadora.getContentPane().add(btnOperadorSubtracao, "cell 3 4,grow");
JButton btn0 = new JButton("0");
btn0.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(textFieldResultado.getText().equals("0")) {
textFieldResultado.setText("0");
} else {
textFieldResultado.setText(textFieldResultado.getText()+"0");
}
}
});
frmNossaCalculadora.getContentPane().add(btn0, "cell 0 5 2 1,grow");
JButton btnVirgula = new JButton(",");
btnVirgula.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
textFieldResultado.setText(textFieldResultado.getText()+".");
}
});
frmNossaCalculadora.getContentPane().add(btnVirgula, "cell 2 5,grow");
JButton btnOperadorAdicao = new JButton("+");
btnOperadorAdicao.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//etapa 1 - armazenar o valor que estiver na JTextField
String stringLidaDoResultado = textFieldResultado.getText();
//etapa 2 - converter o numero1 (string) para o double
try {
numero1 = Double.parseDouble(stringLidaDoResultado);
} catch(NumberFormatException e1) {
textFieldResultado.setText("Número inválido !!! Pressione Limpar");
}
//etapa 3 - armazenar o operador que o usuário selecionou
tipoOp = TipoDeOperacao.ADICAO;
//etapa 4 - Limpar o JTexField do resultado
textFieldResultado.setText("0");
}
});
frmNossaCalculadora.getContentPane().add(btnOperadorAdicao, "flowx,cell 3 5,grow");
JButton btnOperadorIgual = new JButton("=");
btnOperadorIgual.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
double resultado = 0;
String num2 = textFieldResultado.getText();
try {
numero2 = Double.parseDouble(num2);
} catch(NumberFormatException e1) {
textFieldResultado.setText("Número inválido !!! Pressione Limpar");
}
switch(tipoOp) {
case ADICAO:
resultado = numero1 + numero2;
break;
case SUBTRACAO:
resultado = numero1 - numero2;
break;
case MUTIPLICACAO:
resultado = numero1 * numero2;
break;
case DIVISAO:
resultado = numero1 / numero2;
break;
case ELEVADO_AO_QUADRADO:
resultado = Math.pow(numero1, 2); // numero1 * numero1
break;
case DIVIDIDO_POR_UM:
if(numero1 != 0) {
resultado = 1 / numero1;
} else {
textFieldResultado.setText("Divisão por zero");
}
break;
case PERCENTUAL:
(float) (score* 100)/total);
textFieldResultado.setText("a porcentagem é=" "+ percentage +" "%);"
break;
}
String resultadoEmString = String.valueOf(resultado);
textFieldResultado.setText(resultadoEmString);
}
});
frmNossaCalculadora.getContentPane().add(btnOperadorIgual, "cell 4 4 1 2,grow");
}
}