Ir ao conteúdo
  • Cadastre-se

calculadora em java


Correa.

Posts recomendados

Fiz uma calculadora simples em Delphi, ela tem uma interface que pede para entrar com dois numeros e um campo de texto para digitar a operação desejada, finalmente um botão calcular que exibe depois no campo resultado o valor.

O código funciona perfeitamente, mas estou com dificuldade pra fazer uma versão dele em java. Minha duvida é a seguinte:

Em Delphi temos :


procedure TCalculadora.CalcularClick(Sender: TObject);

Para calcular o evento de click, como seria esse comando em java ? Seria o actionPerformed ? E se for, ele ficaria dentro do main ?

E a segunda coisa. No delphi temos :


n1:=StrToFloat(Num1.Text);
Result.Text:=FloatToStr(res);

No primeiro caso para armazenas na variavel o valor

digitado em tela e no segundo o campo result informa o valor calculado.

Como seria essa atribuição no Java?

Link para o comentário
Compartilhar em outros sites

Em Delphi temos :


procedure TCalculadora.CalcularClick(Sender: TObject);

Para calcular o evento de click, como seria esse comando em java ? Seria o actionPerformed ? E se for, ele ficaria dentro do main ?

Olá, primeira coisa é que eu não sei nada de Delphi então acho que posso ajudar você aplicando um pouco do meu conhecimento com relação a calculadora simples, vamos lá:

No código abaixo, criei uma classe chamada Calculadora, que está dentro do pacote calculadora.simples.ainda, mais isso não vem ao caso, se preferir crie uma classe sem o pacote.

Ao criar uma classe, temos que definir os atributos que deverão receber os objetos na classe main.

Como pode ver criei 4 atributos, sendo elas numero, numero2 e operação que deverá ser recebido, dentro dessa classe também criei um método chamado "exibeResultado" que é onde colocamos as lógicas, só lembrando que para comparar com uma String é necessário usar o equals.

Observe o código:


package calculadora.simples.ainda;

public class Calculadora {
public int numero;
public int numero2;
public int resultado;
public String operacao;

public int exibeResultado(){
if (operacao.equals("+")){
resultado = numero + numero2;
}
if (operacao.equals("-")){
resultado = numero - numero2;
}
if (operacao.equals("/")){
resultado = numero / numero2;
}
if (operacao.equals("*")){
resultado = numero / numero2;
}
return resultado;
}
}

Após ter criado a classe Calculadora, criei uma outra classe chamado testeResultado, porém usando a opção "public static void main(String[] args)".

Depois disso, instanciei uma classe e os objetos para que pudesse usar a classe na memória.

Para que os atributos possa receber os objetos, precisaremos usar um comando "JOptionPane.ShowInputDialog" para receber dados, assim como fiz com "calc.numero", "calc.numero2" e "calc.operacao".

Por fim, decidi que o resultado exibisse através de uma janelinha usando o mesmo tipo de receber dados, só que com "JOptionPane.ShowMessageDialog", conforme os códigos abaixo.


package calculadora.simples.ainda;

import javax.swing.JOptionPane;

public class testeReultado {

public static void main(String[] args) {

//Instanciand0o uma classe
Calculadora calc = new Calculadora();

//Instanciando os objetos
calc.numero = Integer.parseInt(JOptionPane.showInputDialog("Entre com um número"));
calc.operacao = JOptionPane.showInputDialog("Operação que deseja");
calc.numero2 = Integer.parseInt(JOptionPane.showInputDialog("Entre com um número"));

//Exibindo o resultado
JOptionPane.showMessageDialog(null, calc.exibeResultado());

}

}

Qualquer dúvida, poste aqui novamente! -_-

Link para o comentário
Compartilhar em outros sites

Muito legal ! implementei e ficou maneiro. Eu cheguei a fazer uma dessas em javascript através do alert que se comporta como o JOptionPanel no java, exibindo uma mensagem de cada vez. Mas essa que eu fiz em delphi tem uma janela com os campos fixos entende, segue o link da imagem http://img36.imageshack.us/img36/8479/calculadorab.jpg

Tava querendo fazer uma assim no java!

Link para o comentário
Compartilhar em outros sites

Dá também sim, claro... se você usa o Delphi, provavelmente o Netbeans será mais fácil pra você, mas é bom aprender no começo sem ele, para ter ideia do que cada classe e método está fazendo.

import java.awt.Component;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.math.BigDecimal;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

// extende o JFrame
public class Calculadora extends JFrame {
private static final long serialVersionUID = 6399995383040270390L;

JTextField numeros[];
String labels[] = { "Número 1", "Número 2", "Operação", "Resultado" };
JButton calcular;
JButton limpar;

// ação de limpar os textos
Action limparAction = new AbstractAction("Limpar") {
private static final long serialVersionUID = -367874393696171249L;

@Override
public void actionPerformed(ActionEvent event) {
for (int i = 0; i < labels.length; i++) {
numeros[i].setText("");
}
}
};

// ação de calcular o valor
Action calcularAction = new AbstractAction("Calcular") {
private static final long serialVersionUID = 149897956607178971L;

@Override
public void actionPerformed(ActionEvent event) {
// uso o n para saber, em caso de erro, qual o número com problema
int n = 0;
try {
// BigDecimal é o ideal para cálculos, pois float e double não
// são confiáveis pelo ponto flutuante,
// mas tem a desvantagem de precisar de métodos para fazer os
// cálculos.
// Se o construtor falhar, é lançado NumberFormatException
BigDecimal n1 = new BigDecimal(numeros[n++].getText());
BigDecimal n2 = new BigDecimal(numeros[n++].getText());
String op = numeros[2].getText();
BigDecimal res;
// testa o operador
if ("+".equals(op)) {
res = n1.add(n2);
} else if ("-".equals(op)) {
res = n1.subtract(n2);
} else if ("*".equals(op)) {
res = n1.multiply(n2);
} else if ("/".equals(op)) {
res = n1.divide(n2);
} else {
// operador desconhecido, solta exceção
throw new Exception("Operador " + op + " desconhecido. Só conheço +, -, * e /");
}
numeros[3].setText(res.toString());
} catch (NumberFormatException e) {
// captura exceção de formato de número
JOptionPane.showMessageDialog((Component) event.getSource(), "Formato do número " + n + " inválido", "Erro", JOptionPane.ERROR_MESSAGE);
} catch (Exception e) {
// captura outras exceções
JOptionPane.showMessageDialog((Component) event.getSource(), e.getMessage(), "Erro", JOptionPane.ERROR_MESSAGE);
}
}
};

public Calculadora() {
// chama construtor pai, com o título
super("Calculadora");
// layout 5 linhas por 2 colunas
setLayout(new GridLayout(5, 2));
// ao clicar o x, fecha o programa
setDefaultCloseOperation(EXIT_ON_CLOSE);

// cria vetor
numeros = new JTextField[labels.length];
for (int i = 0; i < labels.length; i++) {
// adiciona um texto no frame
add(new JLabel(labels[i]));
numeros[i] = new JTextField();
// resultado é o último, deixa somente leitura
if (i == labels.length - 1) {
numeros[i].setEditable(false);
}
// adiciona os campos de texto
add(numeros[i]);
}
// botões, a ação que é executada ao clicar pode ser passada no
// construtor
limpar = new JButton(limparAction);
add(limpar);
calcular = new JButton(calcularAction);
add(calcular);
// ajusta o tamanho inicial do frame
pack();
}

/**
* @param args
*/
public static void main(String[] args) {
// cria a classe da calculadora
Calculadora calculadora = new Calculadora();
// torna visível o frame
calculadora.setVisible(true);
}

}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!