Pessoal estou criando uma calculadora, porem não estou conseguindo adicionar a tecla da porcentagem voces poderia me ajudar por favor

1 resposta
java
E

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 btnOperadorPercentual = new JButton("%");
	btnOperadorPercentual.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.PERCENTUAL;
			
			//etapa 4 - Limpar o JTexField do resultado
			textFieldResultado.setText("100");
		}
	});
	frmNossaCalculadora.getContentPane().add(btnOperadorPercentual, "cell 4 4,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;
			
	
			}
			
			String resultadoEmString = String.valueOf(resultado);
			textFieldResultado.setText(resultadoEmString);
			
		}
	});

	frmNossaCalculadora.getContentPane().add(btnOperadorIgual, "cell 4 4 1 2,grow");
}

}

1 Resposta

S

Quando postar código fonte no fórum, use o botão </> para formatar o código adequadamente.

Corrija os erros de compilação nas linhas acima.

Não existe nenhum btnLimpar no seu código fonte.

Criado 22 de junho de 2022
Ultima resposta 23 de jun. de 2022
Respostas 1
Participantes 2