Pessoal estou precisando desenvolver uma aplicação em Java que pode ser tanto local quanto Web e gostaria de ver se alguém poderia me explicar se é possível desenvolvê-la destas duas maneiras. A aplicação é a seguinte: seria um tipo de calculadora, na qual eu teria por baixo do programa uma fórmula que calcularia a soma de duas variáveis, as quais teriam dois campos que ficariam dispostos na tela e ao serem preenchidos, seria automaticamente informado o valor do produto das duas em outro campo. Sendo que após ter informado o segundo valor, eu não precisaria de nenhum evento, ou seja não precisaria existir o botão OK, bastando apenas dar um enter e o vlor do terceiro campo com o resultado da soma seria preenchido, limpando os campos um e dois, tornando possível uma nova digitação até que o programa fosse encerrado. Gostaria da opinião de vocês, quanto a viabilidade de desenvolvimento desta aplicação, tanto web quanto local, e se possível algum exemplo que pudesse me ajudar no desenvolvimento da mesma.
Cara a principio é uma aplicação simples de se fazer…para realizar essa aplicação em desktop uitilize a API java.awt.* e implementar a interface keylistener para quando você pressionar a tecla ENTER ele tomar determinado ação, ou então pode usar o ActionPerformed, mas ai você já utilizaria um botão…quando o usuario pressionasse o ok ele tomaria determinada ação por exemplo. Agora pra web você pode criar um pequeno formulario através de uma pagina JSP e envia-las ao servlet que faria o processamento dos dados necessários e fazer a exibição dos dados em uma outra página JSP.
Acho que seria mais ou menos assim, corrijam se eu estiver errado por favor!
Falou galera!
Você poderia tentar algo desse tipo, teste o codigo aí que eu escrevi direto aqui na resposta e não testei…
import javax.swing.*;
import java.awt.event.*;
public class Calc extends JPanel implements ActionListener{
private JTextField txfValor1 = new JTextField(10);
private JTextField txfValor2 = new JTextField(10);
private JTextField txfResultado = new JTextField(10);
public Calc(){
add(txfValor1);
add(txfValor2);
add(txfResultado);
txfValor2.addActionListener(this);
}
public void actionPerformed(ActionEvent evt){
txfResultado.setText(Integer.toString(somar(Integer.parseInt(txfValor1.getText()), Integer.parseInt(txfValor2.getText()));
txfValor1.setText("");
txfValor1.setText("");
}
public int somar(int a, int b){
return a+b;
}
}
//para desktop
public class Aplicacao extends JFrame{
private Calc calc = new Calc();
public Aplicacao(){
getContentPane().add(calc);
pack();
setVisible(true);
}
public static void main(String[] a){
new Aplicacao();
}
}
//um applet para web
public class AppWeb extends JApplet{
private Calc calc = new Calc();
public void init(){
add(calc);
}
}
Obrigado pessoal pela ajuda. :okok:
Cara, eu já tenho uma calculadora em MVC. Faz as quatro operações básicas, MOD, CE e limpar.
Já vou disponibilizar o código fonte da View, Controle e Operadores. Agora basta você criar a HTML para acesar a calculadora, não vou disponizá-lo porque o HTML é particular e não fui eu que desenvolvi.
[code]
package calculadora;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.text.DecimalFormat;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class CalculadoraJanela extends JFrame
{
//Container
private Container container;
//Rótulo
private JLabel textoTituloLabel;
//Campos
private JTextField resultadoField;
//Botões
private JButton umButton, doisButton, tresButton, quatroButton, cincoButton, seisButton, seteButton,
oitoButton, noveButton, zeroButton, multiplicaButton, divideButton, somaButton, subtraiButton, igualButton,
pontoButton, modButton, limparButton, ceButton, alteraCorSegundoPlanoButton, creditosButton;
//Controlador da Calculadora
private CalculadoraControle controle;
//Imagem para o crédito do programa
private final Icon tituloCredito = new ImageIcon ("tituloCredito.gif");
//Fontes
private Font fonte;
//Cores
private Color cinzaEscuro, cinzaClaro, branco, cor;
public CalculadoraJanela()
{
super("Calculadora - Wanderlúcio");
controle = new CalculadoraControle(this);
fonte = new Font ("Monospaced", Font.PLAIN, 10);
container = getContentPane();
container.setLayout(new FlowLayout(FlowLayout.CENTER,3,3));
cinzaEscuro = cinzaEscuro.gray;
cinzaClaro = cinzaClaro.lightGray;
branco = branco.white;
Icon titulo = new ImageIcon ("titulo.gif");
textoTituloLabel = new JLabel(titulo);
textoTituloLabel.setToolTipText("Desenvolvido com tecnologia JAVA");
container.add (textoTituloLabel);
resultadoField = new JTextField("0.0", 22);
resultadoField.setEditable(false);
resultadoField.setBackground (branco);
container.add (resultadoField);
Icon sete = new ImageIcon ("sete.gif");
Icon sete2 = new ImageIcon ("sete2.gif");
seteButton = new JButton(sete);
seteButton.setRolloverIcon(sete2);
seteButton.setMnemonic('7');
seteButton.setBackground (cinzaClaro);
seteButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botao7();
}
}
);
container.add(seteButton);
Icon oito = new ImageIcon ("oito.gif");
Icon oito2 = new ImageIcon ("oito2.gif");
oitoButton = new JButton(oito);
oitoButton.setRolloverIcon(oito2);
oitoButton.setMnemonic('8');
oitoButton.setBackground (cinzaClaro);
oitoButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botao8();
}
}
);
container.add(oitoButton);
Icon nove = new ImageIcon ("nove.gif");
Icon nove2 = new ImageIcon ("nove2.gif");
noveButton = new JButton(nove);
noveButton.setRolloverIcon(nove2);
noveButton.setMnemonic('9');
noveButton.setBackground (cinzaClaro);
noveButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botao9();
}
}
);
container.add(noveButton);
Icon soma = new ImageIcon("soma.gif");
Icon soma2 = new ImageIcon("soma2.gif");
somaButton = new JButton(soma);
somaButton.setRolloverIcon(soma2);
somaButton.setMnemonic('s');
somaButton.setToolTipText("SOMA: Realiza uma soma");
somaButton.setBackground (cinzaClaro);
somaButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botaoSoma();
}
}
);
container.add(somaButton);
Icon quatro = new ImageIcon ("quatro.gif");
Icon quatro2 = new ImageIcon ("quatro2.gif");
quatroButton = new JButton(quatro);
quatroButton.setRolloverIcon(quatro2);
quatroButton.setMnemonic('4');
quatroButton.setBackground (cinzaClaro);
quatroButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botao4();
}
}
);
container.add(quatroButton);
Icon cinco = new ImageIcon ("cinco.gif");
Icon cinco2 = new ImageIcon ("cinco2.gif");
cincoButton = new JButton(cinco);
cincoButton.setRolloverIcon(cinco2);
cincoButton.setMnemonic('5');
cincoButton.setBackground (cinzaClaro);
cincoButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botao5();
}
}
);
container.add(cincoButton);
Icon seis = new ImageIcon ("seis.gif");
Icon seis2 = new ImageIcon ("seis2.gif");
seisButton = new JButton(seis);
seisButton.setRolloverIcon(seis2);
seisButton.setMnemonic('6');
seisButton.setBackground (cinzaClaro);
seisButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botao6();
}
}
);
container.add(seisButton);
Icon subtrai = new ImageIcon("subtrai.gif");
Icon subtrai2 = new ImageIcon("subtrai2.gif");
subtraiButton = new JButton(subtrai);
subtraiButton.setRolloverIcon(subtrai2);
subtraiButton.setMnemonic('u');
subtraiButton.setToolTipText("SUBTRAI: Realiza uma subtração");
subtraiButton.setBackground (cinzaClaro);
subtraiButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botaoSubtrai();
}
}
);
container.add(subtraiButton);
Icon um = new ImageIcon ("um.gif");
Icon um2 = new ImageIcon ("um2.gif");
umButton = new JButton(um);
umButton.setRolloverIcon(um2);
umButton.setMnemonic('1');
umButton.setBackground (cinzaClaro);
umButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botao1();
}
}
);
container.add(umButton);
Icon dois = new ImageIcon ("dois.gif");
Icon dois2 = new ImageIcon ("dois2.gif");
doisButton = new JButton(dois);
doisButton.setRolloverIcon(dois2);
doisButton.setMnemonic('2');
doisButton.setBackground (cinzaClaro);
doisButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botao2();
}
}
);
container.add(doisButton);
Icon tres = new ImageIcon ("tres.gif");
Icon tres2 = new ImageIcon ("tres2.gif");
tresButton = new JButton(tres);
tresButton.setRolloverIcon(tres2);
tresButton.setMnemonic('3');
tresButton.setBackground (cinzaClaro);
tresButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botao3();
}
}
);
container.add(tresButton);
Icon multiplica = new ImageIcon("multiplica.gif");
Icon multiplica2 = new ImageIcon("multiplica2.gif");
multiplicaButton = new JButton(multiplica);
multiplicaButton.setRolloverIcon(multiplica2);
multiplicaButton.setMnemonic('m');
multiplicaButton.setToolTipText("MULTIPLICA: Realiza uma multiplicaçao");
multiplicaButton.setBackground (cinzaClaro);
multiplicaButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botaoMultiplica();
}
}
);
container.add(multiplicaButton);
Icon zero = new ImageIcon ("zero.gif");
Icon zero2 = new ImageIcon ("zero2.gif");
zeroButton = new JButton(zero);
zeroButton.setRolloverIcon(zero2);
zeroButton.setMnemonic('0');
zeroButton.setBackground (cinzaClaro);
zeroButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botaoZero();
}
}
);
container.add(zeroButton);
Icon mod = new ImageIcon ("mod.gif");
Icon mod2 = new ImageIcon ("mod2.gif");
modButton = new JButton(mod);
modButton.setRolloverIcon(mod2);
modButton.setMnemonic('o');
modButton.setToolTipText("MOD: Devolve o valor do resto de uma divisão");
modButton.setBackground (cinzaClaro);
modButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botaoMod();
}
}
);
container.add(modButton);
Icon ponto = new ImageIcon ("ponto.gif");
Icon ponto2 = new ImageIcon ("ponto2.gif");
pontoButton = new JButton(ponto);
pontoButton.setRolloverIcon(ponto2);
pontoButton.setMnemonic('.');
pontoButton.setBackground (cinzaClaro);
pontoButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botaoPonto();
}
}
);
container.add(pontoButton);
Icon divide = new ImageIcon ("divide.gif");
Icon divide2 = new ImageIcon ("divide2.gif");
divideButton = new JButton(divide);
divideButton.setRolloverIcon(divide2);
divideButton.setMnemonic('d');
divideButton.setToolTipText("DIVIDE: Realiza uma divisão");
divideButton.setBackground (cinzaClaro);
divideButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botaoDivide();
}
}
);
container.add(divideButton);
Icon limpar = new ImageIcon("limpar.gif");
Icon limpar2 = new ImageIcon("limpar2.gif");
limparButton = new JButton("Limpar ", limpar);
limparButton.setRolloverIcon(limpar2);
limparButton.setMnemonic('l');
limparButton.setToolTipText("LIMPAR: Limpa o visor de resultados e todos os valores");
limparButton.setBackground (cinzaClaro);
limparButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botaoLimpar();
}
}
);
container.add(limparButton);
Icon ce = new ImageIcon("ce.gif");
Icon ce2 = new ImageIcon("ce2.gif");
ceButton = new JButton("CE ",ce);
ceButton.setRolloverIcon(ce2);
ceButton.setMnemonic('c');
ceButton.setToolTipText("CE: Volta uma acao anulando o que foi digitado e retornando ao resultado anterior");
ceButton.setBackground (cinzaClaro);
ceButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botaoCe();
}
}
);
container.add(ceButton);
Icon igual = new ImageIcon("igual.gif");
Icon igual2 = new ImageIcon("igual2.gif");
igualButton = new JButton(igual);
igualButton.setRolloverIcon(igual2);
igualButton.setMnemonic('=');
igualButton.setToolTipText("CE: Gera o resultado da operação desejada");
igualButton.setBackground (cinzaClaro);
igualButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
controle.botaoIgual();
}
}
);
container.add(igualButton);
Icon segundoPlano = new ImageIcon ("segundoPlano.gif");
Icon segundoPlano2 = new ImageIcon ("segundoPlano2.gif");
alteraCorSegundoPlanoButton = new JButton(segundoPlano);
alteraCorSegundoPlanoButton.setRolloverIcon(segundoPlano2);
alteraCorSegundoPlanoButton.setToolTipText("Altera a cor do segundo plano da calculadora");
alteraCorSegundoPlanoButton.setBackground(cinzaClaro);
alteraCorSegundoPlanoButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
cor = JColorChooser.showDialog(CalculadoraJanela.this, "Escolha a cor do segundo Plano", cor);
if (cor == null)
cor = Color.lightGray;
container.setBackground(cor);
}
}
);
container.add(alteraCorSegundoPlanoButton);
Icon creditos = new ImageIcon ("creditos.gif");
Icon creditos2 = new ImageIcon ("creditos2.gif");
creditosButton = new JButton ("Créditos ",creditos);
creditosButton.setRolloverIcon(creditos2);
creditosButton.setBackground (cinzaClaro);
creditosButton.setToolTipText("Clique para obter créditos");
creditosButton.addActionListener
(
new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
JOptionPane.showMessageDialog(
null,
"",
"Calculadora 1.0 - Smaither International Finances Co. - Wanderlúcio Alves de Oliveira",
SwingConstants.NORTH,
getTituloCredito());
}
}
);
container.add (creditosButton);
}
public static void main (String args[])
{
CalculadoraJanela janela = new CalculadoraJanela();
janela.addWindowListener
(
new WindowAdapter()
{
public void windowClosing (WindowEvent e)
{
System.exit(0);
}
}
);
janela.setSize(305, 390);
janela.setResizable(false);
janela.setVisible(true);
}
protected void alteraCorDoOperadorSelecionado()
{
if (controle.getControlaSomaButton() == controle.PRESSIONADO())
{
somaButton.setBackground (cinzaEscuro);
subtraiButton.setBackground (cinzaClaro);
multiplicaButton.setBackground (cinzaClaro);
divideButton.setBackground (cinzaClaro);
modButton.setBackground (cinzaClaro);
}
else if (controle.getControlaSubtraiButton() == controle.PRESSIONADO())
{
somaButton.setBackground (cinzaClaro);
subtraiButton.setBackground (cinzaEscuro);
multiplicaButton.setBackground (cinzaClaro);
divideButton.setBackground (cinzaClaro);
modButton.setBackground (cinzaClaro);
}
else if (controle.getControlaMultiplicaButton() == controle.PRESSIONADO())
{
somaButton.setBackground (cinzaClaro);
subtraiButton.setBackground (cinzaClaro);
multiplicaButton.setBackground (cinzaEscuro);
divideButton.setBackground (cinzaClaro);
modButton.setBackground (cinzaClaro);
}
else if (controle.getControlaDivideButton() == controle.PRESSIONADO())
{
somaButton.setBackground (cinzaClaro);
subtraiButton.setBackground (cinzaClaro);
multiplicaButton.setBackground (cinzaClaro);
divideButton.setBackground (cinzaEscuro);
modButton.setBackground (cinzaClaro);
}
else if (controle.getControlaModButton() == controle.PRESSIONADO())
{
somaButton.setBackground (cinzaClaro);
subtraiButton.setBackground (cinzaClaro);
multiplicaButton.setBackground (cinzaClaro);
divideButton.setBackground (cinzaClaro);
modButton.setBackground (cinzaEscuro);
}
}
protected void corPadraoDosOperadores()
{
somaButton.setBackground (cinzaClaro);
subtraiButton.setBackground (cinzaClaro);
multiplicaButton.setBackground (cinzaClaro);
divideButton.setBackground (cinzaClaro);
modButton.setBackground (cinzaClaro);
}
protected void excessao()
{
JOptionPane.showMessageDialog(
null,
"ERRO:\n- Voce não pode dividir um valor por zero!\n\n\n" +
"IMPOSSÍVEL CALCULAR = " + controle.getPrimeiroValor() + " / " + getResultadoField() +
"\n\n\nSOLUÇÃO:\n- Digite um outro valor para o denominador.",
"Calculadora - Wanderlúcio Alves de Oliveira",
SwingConstants.NORTH,
getTituloCredito());
}
protected Icon getTituloCredito()
{
return tituloCredito;
}
private String getTextoTitulo()
{
return " " + "CRÉDITOS" + " ";
}
protected void setResultadoField(String entrada)
{
resultadoField.setText(entrada);
}
protected String getResultadoField()
{
return resultadoField.getText();
}
}[/code]
Código fonte do controle:
package calculadora;
import calculadora.CalculadoraJanela;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JOptionPane;
public class CalculadoraControle extends Object
{
private CalculadoraJanela janela = null;
//Recebe os valores numéricos
private float resultado, primeiroValor, segundoValor;
//Controla resultadoField
private final int PODEALTERAR = 1;
private final int NAOPODEALTERAR = 2;
private int controlaResultadoField = PODEALTERAR;
//Controla primeiroValor e segundoValor
private final int VAZIO = 1;
private final int COMVALOR = 2;
private int controlaPrimeiroValor = VAZIO;
private int controlaSegundoValor = VAZIO;
//Controla operadores
private final int SOMA = 1;
private final int SUBTRAI = 2;
private final int MULTIPLICA = 3;
private final int DIVIDE = 4;
private final int MOD = 5;
private final int NAOSELECIONADO = 6;
private int operacao = NAOSELECIONADO;
//Controla usuário digitando
private final int USUARIODIGITANDO = 1;
private final int USUARIONAODIGITANDO = 2;
private int controlaUsuario = USUARIONAODIGITANDO;
//Controla botões
private final int NAOPRESSIONADO = 1;
private final int PRESSIONADO = 2;
private final int PRESSIONADOAGORA = 3;
private int controlaSomaButton = NAOPRESSIONADO;
private int controlaSubtraiButton = NAOPRESSIONADO;
private int controlaMultiplicaButton = NAOPRESSIONADO;
private int controlaDivideButton = NAOPRESSIONADO;
private int controlaModButton = NAOPRESSIONADO;
private int controlaPontoButton = NAOPRESSIONADO;
public CalculadoraControle()
{
}
public CalculadoraControle(Object janela)
{
if(janela instanceof CalculadoraJanela)
{
this.janela = (CalculadoraJanela) janela;
}
}
protected void botao7()
{
controlaResultadoField();
janela.setResultadoField(janela.getResultadoField() + "7");
}
protected void botao8()
{
controlaResultadoField();
janela.setResultadoField(janela.getResultadoField() + "8");
}
protected void botao9()
{
controlaResultadoField();
janela.setResultadoField(janela.getResultadoField() + "9");
}
protected void botaoSoma()
{
if (controlaSomaButton != PRESSIONADO)
{
controlaSomaButton = PRESSIONADOAGORA;
controlaBotaoPressionado();
janela.alteraCorDoOperadorSelecionado();
controlaPontoButton = NAOPRESSIONADO;
}
if (controlaUsuario == USUARIODIGITANDO)
{
if (controlaPrimeiroValor == COMVALOR)
{
segundoValor = Float.parseFloat(janela.getResultadoField());
controlaSegundoValor = COMVALOR;
geraResultado();
operacao = SOMA;
}
else
{
primeiroValor = Float.parseFloat(janela.getResultadoField());
controlaPrimeiroValor = COMVALOR;
operacao = SOMA;
controlaResultadoField = PODEALTERAR;
controlaUsuario = USUARIONAODIGITANDO;
controlaPontoButton = NAOPRESSIONADO;
}
}
else
{
operacao = SOMA;
}
}
protected void botao4()
{
controlaResultadoField();
janela.setResultadoField(janela.getResultadoField() + "4");
}
protected void botao5()
{
controlaResultadoField();
janela.setResultadoField(janela.getResultadoField() + "5");
}
protected void botao6()
{
controlaResultadoField();
janela.setResultadoField(janela.getResultadoField() + "6");
}
protected void botaoSubtrai()
{
if (controlaSubtraiButton != PRESSIONADO)
{
controlaSubtraiButton = PRESSIONADOAGORA;
controlaBotaoPressionado();
janela.alteraCorDoOperadorSelecionado();
controlaPontoButton = NAOPRESSIONADO;
}
if (controlaUsuario == USUARIODIGITANDO)
{
if (controlaPrimeiroValor == COMVALOR)
{
segundoValor = Float.parseFloat(janela.getResultadoField());
controlaSegundoValor = COMVALOR;
geraResultado();
operacao = SUBTRAI;
}
else
{
primeiroValor = Float.parseFloat(janela.getResultadoField());
controlaPrimeiroValor = COMVALOR;
operacao = SUBTRAI;
controlaResultadoField = PODEALTERAR;
controlaUsuario = USUARIONAODIGITANDO;
controlaPontoButton = NAOPRESSIONADO;
}
}
else
{
operacao = SUBTRAI;
}
}
protected void botao1()
{
controlaResultadoField();
janela.setResultadoField(janela.getResultadoField() + "1");
}
protected void botao2()
{
controlaResultadoField();
janela.setResultadoField(janela.getResultadoField() + "2");
}
protected void botao3()
{
controlaResultadoField();
janela.setResultadoField(janela.getResultadoField() + "3");
}
protected void botaoMultiplica()
{
if (controlaMultiplicaButton != PRESSIONADO)
{
controlaMultiplicaButton = PRESSIONADOAGORA;
controlaBotaoPressionado();
janela.alteraCorDoOperadorSelecionado();
controlaPontoButton = NAOPRESSIONADO;
}
if (controlaUsuario == USUARIODIGITANDO)
{
if (controlaPrimeiroValor == COMVALOR)
{
segundoValor = Float.parseFloat(janela.getResultadoField());
controlaSegundoValor = COMVALOR;
geraResultado();
operacao = MULTIPLICA;
}
else
{
primeiroValor = Float.parseFloat(janela.getResultadoField());
controlaPrimeiroValor = COMVALOR;
operacao = MULTIPLICA;
controlaResultadoField = PODEALTERAR;
controlaUsuario = USUARIONAODIGITANDO;
controlaPontoButton = NAOPRESSIONADO;
}
}
else
{
operacao = MULTIPLICA;
}
}
protected void botaoZero()
{
controlaResultadoField();
janela.setResultadoField(janela.getResultadoField() + "0");
}
protected void botaoMod()
{
if (controlaModButton != PRESSIONADO)
{
controlaModButton = PRESSIONADOAGORA;
controlaBotaoPressionado();
janela.alteraCorDoOperadorSelecionado();
controlaPontoButton = NAOPRESSIONADO;
}
if (controlaUsuario == USUARIODIGITANDO)
{
if (controlaPrimeiroValor == COMVALOR)
{
segundoValor = Float.parseFloat(janela.getResultadoField());
controlaSegundoValor = COMVALOR;
geraResultado();
operacao = MOD;
}
else
{
primeiroValor = Float.parseFloat(janela.getResultadoField());
controlaPrimeiroValor = COMVALOR;
operacao = MOD;
controlaResultadoField = PODEALTERAR;
controlaUsuario = USUARIONAODIGITANDO;
controlaPontoButton = NAOPRESSIONADO;
}
}
else
{
operacao = MOD;
}
}
protected void botaoPonto()
{
if (controlaPontoButton == NAOPRESSIONADO)
{
controlaPontoButton = PRESSIONADO;
controlaResultadoField = NAOPODEALTERAR;
if (controlaUsuario == USUARIONAODIGITANDO)
{
janela.setResultadoField("0.");
controlaUsuario = USUARIODIGITANDO;
}
else
{
janela.setResultadoField(janela.getResultadoField() + ".");
}
}
}
protected void botaoDivide()
{
if (controlaDivideButton != PRESSIONADO)
{
controlaDivideButton = PRESSIONADOAGORA;
controlaBotaoPressionado();
janela.alteraCorDoOperadorSelecionado();
controlaPontoButton = NAOPRESSIONADO;
}
if (controlaUsuario == USUARIODIGITANDO)
{
if (controlaPrimeiroValor == COMVALOR)
{
segundoValor = Float.parseFloat(janela.getResultadoField());
controlaSegundoValor = COMVALOR;
geraResultado();
operacao = DIVIDE;
}
else
{
primeiroValor = Float.parseFloat(janela.getResultadoField());
controlaPrimeiroValor = COMVALOR;
operacao = DIVIDE;
controlaResultadoField = PODEALTERAR;
controlaUsuario = USUARIONAODIGITANDO;
controlaPontoButton = NAOPRESSIONADO;
}
}
else
{
operacao = DIVIDE;
}
}
protected void botaoLimpar()
{
primeiroValor = 0;
controlaPrimeiroValor = VAZIO;
segundoValor = 0;
controlaSegundoValor = VAZIO;
resultado = 0;
janela.setResultadoField("0.0");
operacao = NAOSELECIONADO;
controlaResultadoField = PODEALTERAR;
controlaUsuario = USUARIONAODIGITANDO;
controlaSomaButton = NAOPRESSIONADO;
controlaSubtraiButton = NAOPRESSIONADO;
controlaMultiplicaButton = NAOPRESSIONADO;
controlaDivideButton = NAOPRESSIONADO;
controlaModButton = NAOPRESSIONADO;
controlaPontoButton = NAOPRESSIONADO;
janela.corPadraoDosOperadores();
}
protected void botaoCe()
{
janela.setResultadoField("0.0");
controlaResultadoField = PODEALTERAR;
controlaUsuario = USUARIONAODIGITANDO;
controlaPontoButton = NAOPRESSIONADO;
}
protected void botaoIgual()
{
controlaPontoButton = NAOPRESSIONADO;
if (controlaUsuario == USUARIODIGITANDO)
{
if (controlaPrimeiroValor == COMVALOR)
{
segundoValor = Float.parseFloat(janela.getResultadoField());
controlaSegundoValor = COMVALOR;
geraResultado();
}
else
{
primeiroValor = Float.parseFloat(janela.getResultadoField());
controlaPrimeiroValor = COMVALOR;
controlaResultadoField = PODEALTERAR;
controlaUsuario = USUARIONAODIGITANDO;
}
}
}
protected void controlaResultadoField()
{
if (controlaResultadoField == PODEALTERAR)
{
janela.setResultadoField("");
}
padraoEntreBotoesNumericos();
}
protected void geraResultado()
{
OperadoresMatematicos operador = new OperadoresMatematicos();
switch (operacao)
{
case SOMA: resultado = operador.soma(primeiroValor, segundoValor); break;
case SUBTRAI: resultado = operador.subtrai(primeiroValor, segundoValor); break;
case MULTIPLICA: resultado = operador.multiplica(primeiroValor, segundoValor); break;
case DIVIDE: resultado = operador.divide(primeiroValor, segundoValor); break;
case MOD: resultado = operador.mod(primeiroValor, segundoValor); break;
}
padraoPosResultado();
}
protected void padraoEntreBotoesNumericos()
{
controlaResultadoField = NAOPODEALTERAR;
controlaUsuario = USUARIODIGITANDO;
}
protected void padraoPosResultado()
{
if (operacao == DIVIDE && segundoValor == 0 ||
operacao == MOD && segundoValor == 0)
{
janela.excessao();
}
else
{
janela.setResultadoField(""+ resultado);
primeiroValor = resultado;
controlaPrimeiroValor = COMVALOR;
controlaSegundoValor = VAZIO;
}
controlaResultadoField = PODEALTERAR;
controlaUsuario = USUARIONAODIGITANDO;
controlaPontoButton = NAOPRESSIONADO;
}
protected void controlaBotaoPressionado()
{
if (controlaSomaButton == PRESSIONADOAGORA)
{
controlaSomaButton = PRESSIONADO;
controlaSubtraiButton = NAOPRESSIONADO;
controlaMultiplicaButton = NAOPRESSIONADO;
controlaDivideButton = NAOPRESSIONADO;
controlaModButton = NAOPRESSIONADO;
}
else if (controlaSubtraiButton == PRESSIONADOAGORA)
{
controlaSomaButton = NAOPRESSIONADO;
controlaSubtraiButton = PRESSIONADO;
controlaMultiplicaButton = NAOPRESSIONADO;
controlaDivideButton = NAOPRESSIONADO;
controlaModButton = NAOPRESSIONADO;
}
else if (controlaMultiplicaButton == PRESSIONADOAGORA)
{
controlaSomaButton = NAOPRESSIONADO;
controlaSubtraiButton = NAOPRESSIONADO;
controlaMultiplicaButton = PRESSIONADO;
controlaDivideButton = NAOPRESSIONADO;
controlaModButton = NAOPRESSIONADO;
}
else if (controlaDivideButton == PRESSIONADOAGORA)
{
controlaSomaButton = NAOPRESSIONADO;
controlaSubtraiButton = NAOPRESSIONADO;
controlaMultiplicaButton = NAOPRESSIONADO;
controlaDivideButton = PRESSIONADO;
controlaModButton = NAOPRESSIONADO;
}
else if (controlaModButton == PRESSIONADOAGORA)
{
controlaSomaButton = NAOPRESSIONADO;
controlaSubtraiButton = NAOPRESSIONADO;
controlaMultiplicaButton = NAOPRESSIONADO;
controlaDivideButton = NAOPRESSIONADO;
controlaModButton = PRESSIONADO;
}
}
protected float getPrimeiroValor()
{
return primeiroValor;
}
protected int getControlaSomaButton()
{
return controlaSomaButton;
}
protected int getControlaSubtraiButton()
{
return controlaSubtraiButton;
}
protected int getControlaMultiplicaButton()
{
return controlaMultiplicaButton;
}
protected int getControlaDivideButton()
{
return controlaDivideButton;
}
protected int getControlaModButton()
{
return controlaModButton;
}
protected int getControlaPontoButton()
{
return controlaPontoButton;
}
protected int PRESSIONADO()
{
return PRESSIONADO;
}
}
Código fonte das operações:
package calculadora;
public class OperadoresMatematicos
{
public float soma(float primeiroValor, float segundoValor)
{
return primeiroValor + segundoValor;
}
public float subtrai(float primeiroValor, float segundoValor)
{
return primeiroValor - segundoValor;
}
public float multiplica(float primeiroValor, float segundoValor)
{
return primeiroValor * segundoValor;
}
public float divide(float primeiroValor, float segundoValor)
{
return primeiroValor / segundoValor;
}
public float mod(float primeiroValor, float segundoValor)
{
return primeiroValor % segundoValor;
}
}
Um grande abraço,
Para receber os GIFS envia um e-mail para mim que te mando. respirojava@yahoo.com.br
Um grande abraço,
se vc quiser eu tenho uma calculadora pronta desta forma
Ela roda no win, linux, mac e na internet como applet
http://www.tritti.com.br/java/sandecocalc/NetCalc.HTM
Ve ai … sandeco