Duvida

5 respostas
B

e ai galera do PJ, tenho mais uma duvida :
Estou tentando fazer uma calculadora simples ( que pra mim era simples até esbarrar nisso) a qual quando uma tecla é pressionada insere o numero referente ao botão numa JTextArea … está ai o problema , como inserir um caracter numa JTextArea ou JTextField a partir de um evento do mouse ( um clique por exemplo)?
Resumindo : quero inserir um caracter ( um numero) num campo de texto clicando num botão …
valeu galera !!!

5 Respostas

T

“Brossi”:
e ai galera do PJ, tenho mais uma duvida :
Estou tentando fazer uma calculadora simples ( que pra mim era simples até esbarrar nisso) a qual quando uma tecla é pressionada insere o numero referente ao botão numa JTextArea … está ai o problema , como inserir um caracter numa JTextArea ou JTextField a partir de um evento do mouse ( um clique por exemplo)?
Resumindo : quero inserir um caracter ( um numero) num campo de texto clicando num botão …
valeu galera !!!

bom… é só vc fazer

isso adceiona 1 caracter
jTextArea.setText(jTextArea.getText() + seuNovoCaracter);

isso redefine o valor da textArae…
jTextArea.setText(seuNovoCaracter);

onde jTextArea é o nome da variavel q contém JTextArae…

isso é simples de fazer com eclipse…

veja a seçào GUI desse forom… la explica onde baixar eclipse / adcionar modulos visuais

M

ta ai um botãozinho q coloca um "5" num JTextField por ex...:

JButton botaoNumero5 = new JButton( "5" );

botaoNumero5.addActionListener(

   new ActionListener {

      public void actionPerformed( ActionEvent e )
      {
         seuTextField.setText( "5" );
      }
   }

);
L

Uma ajudinha ai http://www.inf.ufrgs.br/~manuele/fafra/Calculadora.html

B

valeu galera … obrigado

D

Eae, tb to estudando Java, ae uma calculadora q eu fiz e vou ficar tentando melhorar enquanto for aprendendo mais coisas http://planeta.terra.com.br/lazer/jrfestas/teste/calculadora.html

//Calculadora

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Calculadora extends JApplet implements ActionListener {
	private boolean vez = true; //Variavel que diz se é o 1º ou 2º numero para o metodo 'atribuicao'
	private int primeiroNumero, segundoNumero; //Variaveis de calculo
	private String operacao = "", n1 = "", n2 = ""; //'n1' é o primeiro numero em String e 'n2' o segundo
	
	JLabel resultadoRotulo; //Rotulo do que diz 'Calculadora É noiz'
	JTextField resultadoCampo; //Campo que mostra o numero digitado e o resultado
	JButton numero1, numero2, numero3, numero4, numero5, numero6, numero7, numero8, numero9, numero0,
			soma, subtracao, multiplicacao, divisao, calculo; //Todos os botões
	
	public void init () {
		
		Container saida = getContentPane();   // A variavel 'saida' é uma referencia a 'Container' e ela usa o
		saida.setLayout ( new FlowLayout() ); // gerenciador de layout 'FlowLayout' que posiciona os elementos
											  // na ordem em que sao adicionados
		
		resultadoRotulo = new JLabel ("Calculadora É noiz"); //Rotulo 'Calculadora É noiz'
		saida.add (resultadoRotulo);//Adiciona a 'saida'
		resultadoCampo = new JTextField (16); //Campo que mostra o numero digitado e o resultado
		resultadoCampo.setEditable (false); //Tranforma o campo para que não se possa editá-lo
		saida.add (resultadoCampo);
		
		numero1 = new JButton ("1"); //Cria o botão '1'
		numero1.addActionListener (this); //Adiciona o botão ao tratamento de evento
		saida.add (numero1);
		
		numero2 = new JButton ("2"); //Botão '2'
		numero2.addActionListener (this);
		saida.add (numero2);
		

		numero3 = new JButton ("3"); //Botão '3'
		numero3.addActionListener (this);
		saida.add (numero3);
		
		soma = new JButton ("+"); //Botão '+'
		soma.addActionListener (this);
		saida.add (soma);
		
		numero4 = new JButton ("4"); //Botão '4'
		numero4.addActionListener (this);
		saida.add (numero4);
		
		numero5 = new JButton ("5"); //Botão '5'
		numero5.addActionListener (this);
		saida.add (numero5);
		
		numero6 = new JButton ("6"); //Botão '6'
		numero6.addActionListener (this);
		saida.add (numero6);
		
		subtracao = new JButton ("-"); //Botão '-'
		subtracao.addActionListener (this);
		saida.add (subtracao);
		
		numero7 = new JButton ("7"); //Botão '7'
		numero7.addActionListener (this);
		saida.add (numero7);
		
		numero8 = new JButton ("8"); //Botão '8'
		numero8.addActionListener (this);
		saida.add (numero8);
		
		numero9 = new JButton ("9"); //Botão '9'
		numero9.addActionListener (this);
		saida.add (numero9);
		
		multiplicacao = new JButton ("*"); //Botão '*'
		multiplicacao.addActionListener (this);
		saida.add (multiplicacao);
		
		numero0 = new JButton ("0"); //Botão '0'
		numero0.addActionListener (this);
		saida.add (numero0);
		
		calculo = new JButton ("        =        "); //Botão '='
		calculo.addActionListener (this);
		saida.add (calculo);

		divisao = new JButton ("/"); //Botão '/'
		divisao.addActionListener (this);
		saida.add (divisao);
		
	}//Fim do metodo init
	
	public void actionPerformed (ActionEvent botao) { //Método que registra as informações sobre a ação dos botões
		int numero=0; //Variavel que vai receber o valor de acordo com o botão clicado
		
			//Analisa qual botão de numero foi clicado, atribui ele a variavel 'numero' e chama o metodo 'atribuicao'						
			
			if ( botao.getSource() == numero1) {
				numero = 1;
				atribuicao (numero);}
			else if (botao.getSource() == numero2 ) {
				numero = 2;
				atribuicao (numero);}
			else if (botao.getSource() == numero3 ) {
				numero = 3;
				atribuicao (numero);}
			else if (botao.getSource() == numero4 ) {
				numero = 4;
				atribuicao (numero);}
			else if (botao.getSource() == numero5 ) {
				numero = 5;
				atribuicao (numero);}
			else if (botao.getSource() == numero6 ) {
				numero = 6;
				atribuicao (numero);}
			else if (botao.getSource() == numero7 ) {
				numero = 7;
				atribuicao (numero);}
			else if (botao.getSource() == numero8 ) {
				numero = 8;
				atribuicao (numero);}
			else if (botao.getSource() == numero9 ) {
				numero = 9;
				atribuicao (numero);}
			else if (botao.getSource() == numero0 ) {
				numero = 0;
				atribuicao (numero);}
			
			//Analisa qual botão de operação foi clicado e chama o metódo responsável
			
			if ( botao.getSource() == soma)
				soma ();
			else if ( botao.getSource() == subtracao)
				subtracao ();
			else if ( botao.getSource() == multiplicacao)
				multiplicacao ();
			else if ( botao.getSource() == divisao)
				divisao ();
			
			//Se o botão '=' foi clicado, chama o metodo 'mostraResult'	
			
			if ( botao.getSource() == calculo)
				mostraResult ();
				
	}//Fim do metodo actionPerformed
	
	public void atribuicao (int num) { //Método recebe a variável 'numero' se algum dos botões de numero foi clicado
		
		/*Se é o primeiro numero (vez=true), a variavel 'n1' vai pegando os botões de numeros clicados
		 *que ja vão sendo transformados para String, enquanto não se clicar nos botões de operação, ela vai
		 *registrando*/
		
		if (vez) {
			n1 += Integer.toString (num);
			resultadoCampo.setText ( n1 );}
		
		//A mesma coisa acontece se for o segundo numero (vez=false)	
		else {
			n2 += Integer.toString (num);
			resultadoCampo.setText ( n2 );}
		
	}//Fim do metodo atribuicao
	
	public void soma () { //Método que é chamado quando se clica no botão '+'
		
		operacao = "+"; //Atribui '+' a variavel 'operacao'
		InicPrimeiroNumero(); //Chama o metodo 'InicPrimeiroNumero'
		
	}//Fim do metodo soma
	
	public void subtracao () { //Método que é chamado quando se clica no botão '-'
		
		operacao = "-";
		InicPrimeiroNumero();
		
	}//Fim do metodo subtracao
	
	public void multiplicacao () { //Método que é chamado quando se clica no botão '*'
		
		operacao = "*";
		InicPrimeiroNumero();
		
	}//Fim do metodo multiplicacao
	
	public void divisao () { //Método que é chamado quando se clica no botão '/'
		
		operacao = "/";
		InicPrimeiroNumero();
		
	}//Fim do metodo divisao
	
	public void InicPrimeiroNumero () { //Metodo que atribui um valor inteiro ao primeiro numero a ser calculado
		
		/*A variavel 'primeiroNumero' pega o valor de 'n1' que estavam em String e tinham nela registrados os
		botões de numeros clicados e que vão ser o valor do primeiro numero a ser calculado*/
		
		primeiroNumero = Integer.parseInt (n1); //Transforma pra inteiro o String de 'n1'
		vez = false; //Como um botão de operação foi clicado, quer dizer que os proximos botões de numeros serão
					 //do segundo numero a ser calculado, então a variavel 'vez' é passada para 'false' para o
					 //metodo 'atribuicao' registrar os botões clicados em 'n2'
		
	}//Fim do metodo InicPrimeiroNumero
	
	public void mostraResult () { //Metodo que chama o metodo 'calculo' e mostra o resultado final
		int result = 0; //Variavel que vai mostrar o resultado final
		
		segundoNumero = Integer.parseInt (n2); /*Passa a variavel 'n2' para inteiro, seguindo a mesma regra
												do metodo 'InicPrimeiroNumero'*/
		
		result = calculo (); //Chama o metodo 'calculo' e atribui o resultado a variavel 'result'
		 
		resultadoCampo.setText ( Integer.toString (result) ); /*Exibe no campo o resultado final ja transformado
															  em inteiro*/
		
		vez = true; //Variavel 'vez' vira 'true' para um os proximos botões de numeros iniciarem um novo calculo
		
		//'n1' e 'n2' voltam a ser Strings vazios para receberem o proximo calculo
		
		n1 = "";
		n2 = "";
		
	}//Fim do metodo mostraResult
	
	public int calculo () { //Metodo que vao fazer os calculos
		int calc = 0; //Variavel que vai receber o resultado dos calculos
		
		//Testa qual botão de operação foi clicado e faz os calculos em relação a ele
		
		if (operacao == "+")
			calc = primeiroNumero + segundoNumero;
		else if (operacao == "-")
			calc = primeiroNumero - segundoNumero;
		else if (operacao == "*")
			calc = primeiroNumero * segundoNumero;
		else if (operacao == "/")
			calc = primeiroNumero / segundoNumero;
			
		return calc; //Retorna para o metodo 'mostraResult'
		
	}//Fim do metodo calculo
		
}//Fim da classe Calculadora


*********** HTML ************

<html>
<applet code="Calculadora.class" width="195" height="180"></applet>
</html>

Tem alguns erros q eu ainda nao sei resolver:

-Ela so funciona em calculos de 2 numeros tipo, numero + operação + numero + igual, se tentar fazer numero + operação + numero + operação + numero… da pau.

-Ela nao guarda o ultimo resultado, por exemplo, 5+5=10 e 10x2 tem q fazer a primeira (5+5), o resultado da 10, nao da pra emendar logo a outra (x2), tem q digitar 10 denovo e depois multiplicar por 2. :cry:

:lol: :lol: :lol:

Criado 2 de março de 2004
Ultima resposta 3 de mar. de 2004
Respostas 5
Participantes 5