[color=darkblue] [/color]
:twisted: :arrow:
public class calculador {
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.math.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Calculadora extends JFrame implements ActionListener {
public JButton btn0;
public JButton btn1;
public JButton btn2;
public JButton btn3;
public JButton btn4;
public JButton btn5;
public JButton btn6;
public JButton btn7;
public JButton btn8;
public JButton btn9;
public JButton btnsep;
public JButton btnresult;
public JButton btnsoma;
public JButton btnsubt;
public JButton btnmult;
public JButton btndiv;
public JButton btnlimpa;
public JButton btnsen;
public JButton btntan;
public JButton btncos;
public JButton btnsec;
public JButton btncot;
public JButton btncss;
public JButton btnlog;
public JButton btnraiz;
public JButton btnln2;
String operacao = "";
double armazena = 0;
double calculo = 0;
JTextField edicao;
public static void main(String[] args) {
JFrame janela = new Calculador();
janela.setVisible(true); // pra não ter q redimensionar a janela pra
// aparece alguma coisa
// tem que ter isso para reconhecer o comando de "clicar no botão"
WindowListener x = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};
janela.addWindowListener(x);
}
public Calculador() {
setTitle(" Cíentifica!");
setSize(600, 600);
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension d = tk.getScreenSize(); // obtém dimensão da tela
setVisible(true);
setResizable(false); // não permite redimensionar o formulario
setLocation(d.width / 3, d.height / 3); // -define localização tela
getContentPane().setLayout(new BorderLayout());
// Cria o formulario onde serão inseridos os componentes
JPanel formulario = new JPanel(null);
setSize(325, 325);
formulario.setBackground(Color.pink);
//--------- Cria um label na tela ---------
JLabel label = new JLabel("Cientifíca");
label.setForeground(Color.white);
label.setBounds(70, 10, 150, 20);
formulario.add(label);
//--------- Cria uma caixa de edição ---------
edicao = new JTextField();
edicao.setForeground(Color.white);
edicao.setBounds(30, 40, 170, 25);
this.getContentPane().add(edicao);
edicao.setEditable(false);
formulario.add(edicao);
edicao.setBackground(Color.black);
//--------- cria botão 1 ---------
btn1 = new JButton("1");
btn1.setBackground(Color.white);
btn1.setBounds(30, 70, 50, 25);
this.getContentPane().add(btn1);
btn1.setEnabled(true);
btn1.addActionListener(this);
formulario.add(btn1);
// --------- cria botão 2 ---------
btn2 = new JButton("2");
btn2.setBackground(Color.white);
btn2.setBounds(90, 70, 50, 25);
this.getContentPane().add(btn2);
btn2.setEnabled(true);
btn2.addActionListener(this);
formulario.add(btn2);
// --------- cria botão 3 ---------
btn3 = new JButton("3");
btn3.setBackground(Color.white);
btn3.setBounds(150, 70, 50, 25);
this.getContentPane().add(btn3);
btn3.setEnabled(true);
btn3.addActionListener(this);
formulario.add(btn3);
// --------- cria botão 4 ---------
btn4 = new JButton("4");
btn4.setBackground(Color.white);
btn4.setBounds(30, 100, 50, 25);
this.getContentPane().add(btn4);
btn4.setEnabled(true);
btn4.addActionListener(this);
formulario.add(btn4);
// --------- cria botão 5 ---------
btn5 = new JButton("5");
btn5.setBackground(Color.white);
btn5.setBounds(90, 100, 50, 25);
this.getContentPane().add(btn5);
btn5.setEnabled(true);
btn5.addActionListener(this);
formulario.add(btn5);
// --------- cria botão 6 ---------
btn6 = new JButton("6");
btn6.setBackground(Color.white);
btn6.setBounds(150, 100, 50, 25);
this.getContentPane().add(btn6);
btn6.setEnabled(true);
btn6.addActionListener(this);
formulario.add(btn6);
//--------- cria botão 7 ---------
btn7 = new JButton("7");
btn7.setBackground(Color.white);
btn7.setBounds(30, 130, 50, 25);
this.getContentPane().add(btn7);
btn7.setEnabled(true);
btn7.addActionListener(this);
formulario.add(btn7);
// --------- cria botão 8 ---------
btn8 = new JButton("8");
btn8.setBackground(Color.white);
btn8.setBounds(90, 130, 50, 25);
this.getContentPane().add(btn8);
btn8.setEnabled(true);
btn8.addActionListener(this);
formulario.add(btn8);
// --------- cria botão 9 ---------
btn9 = new JButton("9");
btn9.setBackground(Color.white);
btn9.setBounds(150, 130, 50, 25);
this.getContentPane().add(btn9);
btn9.setEnabled(true);
btn9.addActionListener(this);
formulario.add(btn9);
//--------- cria botão 0 ---------
btn0 = new JButton("0");
btn0.setBackground(Color.white);
btn0.setBounds(90, 160, 50, 25);
this.getContentPane().add(btn0);
btn0.setEnabled(true);
btn0.addActionListener(this);
formulario.add(btn0);
//--------- cria botão virgula(,) ---------
btnsep = new JButton(",");
btnsep.setBackground(Color.white);
btnsep.setBounds(30, 160, 50, 25);
this.getContentPane().add(btnsep);
btnsep.setEnabled(true);
btnsep.addActionListener(this);
formulario.add(btnsep);
// --------- cria botão resultado (=) ---------
btnresult = new JButton("=");
btnresult.setBackground(Color.white);
btnresult.setBounds(150, 160, 50, 25);
this.getContentPane().add(btnresult);
btnresult.setEnabled(true);
btnresult.addActionListener(this);
formulario.add(btnresult);
//--------- cria botão soma (+) ---------
btnsoma = new JButton("+");
btnsoma.setBackground(Color.white);
btnsoma.setBounds(220, 70, 50, 25);
this.getContentPane().add(btnsoma);
btnsoma.setEnabled(true);
btnsoma.addActionListener(this);
formulario.add(btnsoma);
//--------- cria botão subtração (-)---------
btnsubt = new JButton("-");
btnsubt.setBackground(Color.white);
btnsubt.setBounds(220, 100, 50, 25);
this.getContentPane().add(btnsubt);
btnsubt.setEnabled(true);
btnsubt.addActionListener(this);
formulario.add(btnsubt);
//--------- cria botão multiplicação (*) ---------
btnmult = new JButton("*");
btnmult.setBackground(Color.white);
btnmult.setBounds(220, 130, 50, 25);
this.getContentPane().add(btnmult);
btnmult.setEnabled(true);
btnmult.addActionListener(this);
formulario.add(btnmult);
//--------- cria botão divisão (/)---------
btndiv = new JButton("/");
btndiv.setBackground(Color.white);
btndiv.setBounds(220, 160, 50, 25);
this.getContentPane().add(btndiv);
btndiv.setEnabled(true);
btndiv.addActionListener(this);
formulario.add(btndiv);
//--------- cria botão limpa (C)---------
btnlimpa = new JButton("C");
btnlimpa.setBackground(Color.white);
btnlimpa.setBounds(220, 40, 50, 25);
this.getContentPane().add(btnlimpa);
btnlimpa.setEnabled(true);
btnlimpa.addActionListener(this);
formulario.add(btnlimpa);
//--------- cria botão raiz -------
btnraiz = new JButton("raiz");
btnraiz.setBackground(Color.white);
btnraiz.setBounds(112, 250, 75, 25);
this.getContentPane().add(btnraiz);
btnraiz.setEnabled(true);
btnraiz.addActionListener(this);
formulario.add(btnraiz);
//--------- cria botão seno -------
btnsen = new JButton("seno");
btnsen.setBackground(Color.white);
btnsen.setBounds(112, 250, 75, 25);
this.getContentPane().add(btnsen);
btnsen.setEnabled(true);
btnsen.addActionListener(this);
formulario.add(btnsen);
//--------- cria botão tangente -------
btntan = new JButton("tang");
btntan.setBackground(Color.white);
btntan.setBounds(112, 250, 75, 25);
this.getContentPane().add(btntan);
btntan.setEnabled(true);
btntan.addActionListener(this);
formulario.add(btntan);
//--------- cria botão coseno -------
btncos = new JButton("coseno");
btncos.setBackground(Color.white);
btncos.setBounds(112, 250, 75, 25);
this.getContentPane().add(btncos);
btncos.setEnabled(true);
btncos.addActionListener(this);
formulario.add(btncos);
//--------- cria botão logaritmo-------
btnlog = new JButton("logaritmo");
btnlog.setBackground(Color.white);
btnlog.setBounds(112, 250, 75, 25);
this.getContentPane().add(btnlog);
btnlog.setEnabled(true);
btnlog.addActionListener(this);
formulario.add(btnlog);
//--------- cria botão porcentagem-------falta porcentagem
btnporc = new JButton("porcentagem");
btn.setBackground(Color.white);
btn.setBounds(112, 250, 75, 25);
this.getContentPane().add(btnporc);
btn.setEnabled(true);
btn.addActionListener(this);
formulario.add(btn);
this.getContentPane().add(formulario, BorderLayout.CENTER);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
double aux, rad, raizquadrada, seno, tangente, coseno, logaritmo, porcentagem; //aux=variavel auxiliar. rad=radiano. ang= angulo;
Object obj = e.getSource();
if (edicao.getText().equals("")) { // equals => comparação de objetos
aux = 0;
} else {
aux = Double.valueOf(edicao.getText());
}
/*---------- BOTAO DA VIRGULA ---------- */
if (obj == btnsep) {
if (aux == 0){
edicao.setText("0.");
}else{
if (((edicao.getText()).indexOf(".")) ==-1){
edicao.setText(edicao.getText()+".");
}
}
}
//--------- OPERAÇÕES ----------
if (obj == btnsoma) {
edicao.setText("");
armazena = aux;
operacao = "+";
}
if (obj == btnsubt) {
edicao.setText("");
armazena = aux;
operacao = "-";
}
if (obj == btnmult) {
edicao.setText("");
armazena = aux;
operacao = "*";
}
if (obj == btndiv) {
edicao.setText("");
armazena = aux;
operacao = "/";
}
if (obj == btnraiz){
edicao.setText("");
armazena = aux;
operacao = "sqrt";
}
if (obj == btnsen){
edicao.setText("");
armazena = aux;
operacao = "sen";
}
if (obj == btntan) {
edicao.setText("");
armazena = aux;
operacao = "tang";
}
if (obj == btncos) {
edicao.setText("");
armazena = aux;
operacao = "cos";
}
if (obj == btnlog) {
edicao.setText("");
armazena = aux;
operacao = "log";
}
//falta porcentagem
if (obj == btn) {
edicao.setText("");
armazena = aux;
operacao = "porc";
}
//---------- RESULTADO ---------
if (obj == btnresult) {
if (operacao == "+") {
calculo = armazena + aux;
edicao.setText("" + calculo);
}
if (operacao == "-") {
calculo = armazena - aux;
edicao.setText("" + calculo);
}
if (operacao == "*") {
calculo = armazena * aux;
edicao.setText("" + calculo);
}
if (operacao == "/") {
calculo = armazena / aux;
edicao.setText("" + calculo);
}
if (operacao == "sqrt"){
rad = (Math.sqrt(aux));
raizquadrada = Math.sqrt(aux);
edicao.setText(""+raizquadrada);
}
if (operacao == "sen"){
rad = (Math.sin(aux));
seno = Math.sin(aux);
edicao.setText(""+seno);
}
if (operacao == "tang"){
rad = (Math.tan(aux));
seno = Math.tan(aux);
edicao.setText(""+tangente);
}
if (operacao == "cos"){
rad = (Math.cos(aux));
coseno = Math.cos(aux);
edicao.setText(""+coseno);
}
if (operacao == "%"){
rad = (Math.round (aux));
porcentagem = Math.round(aux);
edicao.setText(""+porcentagem);
}
armazena = calculo;
}
//---------- NÚMEROS ----------
if (obj == btn1) {
edicao.setText(edicao.getText() + "1");
}
if (obj == btn2) {
edicao.setText(edicao.getText() + "2");
}
if (obj == btn3) {
edicao.setText(edicao.getText() + "3");
}
if (obj == btn4) {
edicao.setText(edicao.getText() + "4");
}
if (obj == btn5) {
edicao.setText(edicao.getText() + "5");
}
if (obj == btn6) {
edicao.setText(edicao.getText() + "6");
}
if (obj == btn7) {
edicao.setText(edicao.getText() + "7");
}
if (obj == btn8) {
edicao.setText(edicao.getText() + "8");
}
if (obj == btn9) {
edicao.setText(edicao.getText() + "9");
}
if (obj == btn0) {
edicao.setText(edicao.getText() + "0");
}
if (obj == btnraiz) {
edicao.setText(edicao.getText() + "raiz");
}
if (obj == btnsen) {
edicao.setText(edicao.getText() + "sen");
}
if (obj == btntan) {
edicao.setText(edicao.getText() + "tan");
}
if (obj == btncos) {
edicao.setText(edicao.getText() + "cos");
}
if (obj == btnlog) {
edicao.setText(edicao.getText() + "log");
}
//falta porcentagem
if (obj == btnround {
edicao.setText(edicao.getText() + "porc");
}
// -------- LIMPAR CONTEÚDO ---------
if (obj == btnlimpa) {
edicao.setText("");
}
}
}