Boa Noite Pessoal, como vão?? espero que bem!
Desculpem se estou postando essa mensagem numa opção errada. \o/
Sou novo no forum e Iniciante em Java, tem uns 2 meses que estou lendo umas apostilas e o forum de vocês. Li sobre criações graficas e tratamento de eventos (estah me ajudando mto). Então decidi eu criar uma calculadora basica baseada numa que eu sei fazer em C++, usando void’s e depois chamando-os no switch case:
void SOMA()
{
Instrução
}
Então consegui terminar ela (meio suado), estah funcionando perfeitamente, mas ainda falta colocar um IF dentro do IF do botão “dividi” para mostrar um POPUP (JOptionPane) negando uma divisão por ZERO 0. (to suando nisso tambem, mas vou continuar tentando).
Então…vocês que tem muito mais experiência do que eu em JAVA (obviamente), teria como vocês avaliarem meu código??? só para ver se está bem claro e objetivo, se há possibilidades de eu otimiza-lo…etc…???
agradeço a todos por qualquer força!!!
Abraço!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calc { //Classe principal
//INICIO - INSTANCIAR OBJETOS
JFrame janela = new JFrame("CALCULADORA JEXPLOITECH");
JPanel container = new JPanel();
JLabel textoindica1 = new JLabel(" Primeiro Valor :");
JLabel textoindica2 = new JLabel(" Segundo Valor :");
JLabel textoindica3 = new JLabel(" Resultado :");
JButton soma = new JButton("S O M A R");
JButton subtrai = new JButton("S U B T R A I R");
JButton multiplica = new JButton("M U L T I P L I C A R");
JButton dividi = new JButton("D I V I D I R");
JTextField campo1 = new JTextField(4);
JTextField campo2 = new JTextField(5);
JTextField campo3 = new JTextField(10);
//FIM - INSTANCIAR OBJETOS
public Calc() { //INICIA CONSTRUTOR DE OBJETOS
janela.getContentPane().add(container);
container.setBackground(Color.black);
container.add(textoindica1);
textoindica1.setForeground(Color.green);
textoindica1.setFont(new Font("Arial", Font. ITALIC, 20));
container.add(campo1);
campo1.setFont(new Font("Arial", Font. BOLD, 20));
container.add(textoindica2);
textoindica2.setForeground(Color.green);
textoindica2.setFont(new Font("Arial", Font. ITALIC, 20));
container.add(campo2);
campo2.setFont(new Font("Arial", Font. BOLD, 20));
container.add(textoindica3);
textoindica3.setForeground(Color.green);
textoindica3.setFont(new Font("Arial", Font. ITALIC, 20));
container.add(campo3);
campo3.setFont(new Font("Arial", Font. BOLD, 25));
campo3.setForeground(Color.red);
campo3.setBackground(Color.green);
campo3.setEditable(false);
container.add(soma);
container.add(subtrai);
container.add(multiplica);
container.add(dividi);
//ADICIONA "LISTENER" PARA OS BOTÕES, E INCLUE NA CLASSE CALCULAR
soma.addActionListener(new calcular());
subtrai.addActionListener(new calcular());
multiplica.addActionListener(new calcular());
dividi.addActionListener(new calcular());
janela.setVisible(true);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janela.setBounds(420,280,400,250);
container.setLayout(new GridLayout(5,5,5,5));//Cria uma Grade no painel/janela, onde: Nlinhas,Ncolunas,espaço vertical, espaço horizontal.
}//FINALIZA CONSTRUTOR DE OBJETOS
//INICIO - CLASSE QUE CRIA AS AÇÕES PARA OS BOTÕES
private class calcular implements ActionListener {
public void actionPerformed(ActionEvent acao) {
String num1, num2;
num1= campo1.getText();
num2= campo2.getText();
if(acao.getSource() == soma){
float resp= Float.parseFloat(num1) + Float.parseFloat(num2);//Converte as variaveis Strings para Float
campo3.setText("" + resp);
}
if(acao.getSource() == subtrai){
float resp= Float.parseFloat(num1) - Float.parseFloat(num2);//Converte as variaveis Strings para Float
campo3.setText("" + resp);
}
if(acao.getSource() == multiplica){
float resp= Float.parseFloat(num1) * Float.parseFloat(num2);//Converte as variaveis Strings para Float
campo3.setText("" + resp);
}
if(acao.getSource() == dividi){
float resp= Float.parseFloat(num1) / Float.parseFloat(num2);//Converte as variaveis Strings para Float
campo3.setText("" + resp);
}
}
}//FIM - CLASSE QUE CRIA AS AÇÕES PARA OS BOTÕES
public static void main(String args[]) { //Função Principal
new Calc();
}
}