Ola, estou fazendo um trabalho para facul, tenho que fazer uma calculadora basica em java, ela ja esta funcionando, mas gostaria de saber com que faço, para a calculadora tb aceitar entradas de valor pelo teclado, e tb as operações como soma, mult, sub, e divião, tb ser aceitas eu apertando pelo teclado.
e como que eu poderia mudar o layout dela para outro, como eu mudificaria isso, por enquando soh sei trabalhar com o FlowLayout, ja tentei com outros e naum consegui. e também quero separar as teclas da tela de texto.
Obs. ela esta funcionando normal, osh esta faltando esses detalhes que falei.
Por favor, alguma alma bondosa me ajuda ae?? :roll:
[code]import java.awt.;//importa as classes do pacote “awt”
import java.awt.event.;//importa as classes do pacote “event”
import javax.swing.*;//importa as classes do pacote “swing”
class Exemplo0902 extends JFrame implements ActionListener{//inicia a classe “Exemplo0902” herdando métodos da classe “JFrame”
JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bsoma,bmult,bdivi,bsub,bigual,blimpa,bponto;
JTextField tela;
private char op;
private String num;
private String numtela="";
private double ac=0, a=0;
public static void main(String args[]){
JFrame janela = new Exemplo0902();
janela.setUndecorated(true);
janela.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janela.setVisible(true);
}
Exemplo0902(){
setTitle("Calculadora");
setBounds(200,200,200,200);
setLocation(100,100);
getContentPane().setBackground(Color.black);
setLayout(new FlowLayout());
b1 = new JButton("1");
b1.addActionListener(this);
b2 = new JButton("2");
b2.addActionListener(this);
b3 = new JButton("3");
b3.addActionListener(this);
b4 = new JButton("4");
b4.addActionListener(this);
b5 = new JButton("5");
b5.addActionListener(this);
b6 = new JButton("6");
b6.addActionListener(this);
b7 = new JButton("7");
b7.addActionListener(this);
b8 = new JButton("8");
b8.addActionListener(this);
b9 = new JButton("9");
b9.addActionListener(this);
b0 = new JButton("0");
b0.addActionListener(this);
bsoma = new JButton("+");
bsoma.addActionListener(this);
bsub = new JButton("-");
bsub.addActionListener(this);
bmult = new JButton("x");
bmult.addActionListener(this);
bdivi = new JButton("/");
bdivi.addActionListener(this);
blimpa = new JButton("C");
blimpa.addActionListener(this);
bigual = new JButton("=");
bigual.addActionListener(this);
bponto = new JButton(".");
bponto.addActionListener(this);
tela = new JTextField(10);
getContentPane().add(tela);
getContentPane().add(blimpa);
getContentPane().add(b9);
getContentPane().add(b8);
getContentPane().add(b7);
getContentPane().add(bdivi);
getContentPane().add(b4);
getContentPane().add(b5);
getContentPane().add(b6);
getContentPane().add(bmult);
getContentPane().add(b1);
getContentPane().add(b2);
getContentPane().add(b3);
getContentPane().add(bsub);
getContentPane().add(b0);
getContentPane().add(bponto);
getContentPane().add(bigual);
getContentPane().add(bsoma);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == blimpa){
tela.setText("");
numtela="";
}
if ((e.getSource() == bsoma) || (e.getSource() == bsub) || (e.getSource() == bmult) || (e.getSource() == bdivi) ){
try{
if (e.getSource() == bsoma){
a = Double.parseDouble( numtela );
ac = ac + a;
tela.setText("");
numtela="";
op = '+';
}
else if (e.getSource() == bsub){
a = Double.parseDouble( numtela );
ac = ac - a;
tela.setText("");
numtela="";
op = '-';
}
else if (e.getSource() == bdivi){
a = Double.parseDouble( numtela );
ac = ac / a;
tela.setText("");
numtela="";
op = '/';
}
else if (e.getSource() == bmult){
a = Double.parseDouble( numtela );
ac = ac * a;
tela.setText("");
numtela="";
op = '*';
}
}
catch(NumberFormatException erro){
tela.setText("Erro");
return;
}
}
if ((e.getSource() == b1)||(e.getSource() == b2)||(e.getSource() == b3)|| (e.getSource() == b4)||(e.getSource() == b5)|| (e.getSource() == b6)||(e.getSource() == b7)||(e.getSource() == b8)||(e.getSource() == b9)|| (e.getSource() == b0)||(e.getSource() == bponto)){
if (e.getSource() == b1) num = "1";
else if (e.getSource() == b2) num = "2";
else if (e.getSource() == b3) num = "3";
else if (e.getSource() == b4) num = "4";
else if (e.getSource() == b5) num = "5";
else if (e.getSource() == b6) num = "6";
else if (e.getSource() == b7) num = "7";
else if (e.getSource() == b8) num = "8";
else if (e.getSource() == b9) num = "9";
else if (e.getSource() == b0) num = "0";
else if (e.getSource() == bponto) num = ".";
numtela=numtela+num;
tela.setText(""+numtela);
}
if (e.getSource() == bigual){
try{
if (op == '+'){
a = Double.parseDouble( numtela );
ac = ac + a;
tela.setText(""+ac);
}
else if (op == '-'){
a = Double.parseDouble( numtela );
ac = ac - a;
tela.setText(""+ac);
}
else if (op == '/'){
a = Double.parseDouble( numtela );
ac = ac / a;
tela.setText(""+ac);
}
else if (op =='*'){
a = Double.parseDouble( numtela );
ac = ac * a;
tela.setText(""+ac);
}
numtela = tela.getText();
ac = 0;
}
catch(NumberFormatException erro){
tela.setText("Erro");
return;
}
}
}
}[/code]