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 !!!
Duvida
5 Respostas
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
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" );
}
}
);
Uma ajudinha ai http://www.inf.ufrgs.br/~manuele/fafra/Calculadora.html
valeu galera … obrigado
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. 
:lol: :lol: :lol: