Boa noite pessoal,
Antes de mais nada gostaria de agradecer ao guj, tenho aprendido muito nesse fórum. Parabéns a todos!
Bem, estudo Java através de alguns livros, como o USE A CABEÇA e o Java, Como programar DEITEL. Aprendi muito até agora…
Na última semana me desafiei a programar uma calculadora em java, utilizando o SWING. Consegui montar toda a interface gráfica, gostaria que vocês avaliassem meu código, procurassem por falhas e pontos a melhorar. Assim como também me ajudassem a terminar minha calculadora de forma eficiente. Juro que era mais fácil quando estudava vb… :lol:
Bem, segue o código abaixo:
Aplicacao.java
public class Aplicacao {
public static void main(String[]args){
Calc calculadora=new Calc();
calculadora.setVisible(true);
}
}
Calc.java
[code]
import java.awt.BorderLayout;
import javax.swing.JFrame;
public class Calc extends JFrame{
private Visor visor;
private Teclado teclado;
public Calc(){ //construtor do frame
super("Calculadora Simples");
this.setSize(200,200);
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
this.setResizable(false);
//Acresentando os componentes na calculadora
visor=new Visor(); //criando um visor
this.add(visor,BorderLayout.NORTH);
teclado=new Teclado(); //criando um teclado
this.add(teclado,BorderLayout.CENTER);
}
}[/code]
Teclado.java
[code]
import java.awt.GridLayout;
import javax.swing.JPanel;
public class Teclado extends JPanel{
private static final String[] TECLAS={
"7","8","9","/",
"4","5","6","*",
"1","2","3","-",
"0",".","=","+"
};
private static Botao[] botoes=new Botao[TECLAS.length];
public Teclado(){ //construtor do teclado numérico
this.setLayout(new GridLayout(4,4));
//adicionando os botões no teclado
for(int i=0;i<TECLAS.length;i++){
botoes[i]=new Botao(TECLAS[i]);
this.add(botoes[i]);
}
}
}[/code]
Botao.java
[code]
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
public class Botao extends JButton {
public Botao(String tc){ //construtor de botão
super(tc);
super.addActionListener(new HandlerBotao());
}
//classe interna para tratamento de eventos do teclado
private class HandlerBotao implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
}[/code]
Visor.java
[code]
import javax.swing.JTextField;
public class Visor extends JTextField{
public Visor(){ //construtor do visor
this.setEditable(false);
this.setHorizontalAlignment(RIGHT);
}
}[/code]
Processador.java
[code]
public class Processador {
private static double num1;
private static double num2;
private static double resultado;
}[/code]
A minha idéia foi de programar cada componente da calculadora individualmente, e deixar todas as fórmulas e códigos próprios de uma calculadora na classe Processador… O problema é que acabei travando aqui… Gostaria que vocês avaliassem meu trabalho até então e me dessem dicas para que dentro da orientação a objetos eu continue meu desafio.
Desde já, muito obrigado.
–
Tiago José