Boas.
Eu tou a fazer uma calculadora, com interfaces gráficas. Queria saber se há alguma forma de saber se um certo bottão foi seleccionado. Por exemplo: se o botão sum for seleccionado:
Eu poderia fazer com if, do género,
JButton sum=new JButtom();
if(sum.isSelected()) E.sum(f1,f2);
onde f1 e f2 são fracções(de uma Class Fraction) e E(Class Euclid que faz operações sobre fracções). Eu tenho esses objectos programados, e os métodos todos bem feitos, como o sum do exemplo que dou.
O problema é que quando carrego no botão na minha frame que identifica o sum, eu tenho aquela condição, o programa passa á frente, isto é, dá falso.
E como receber informação, por exemplo, se eu carregar nos botões ‘1’,‘7’,‘3’ eu queria guardar estes valores numa variável, consoante eu carregar nas teclas.
Obrigado.
Podem dar umas dicas?
O primeiro problema que você notará ao fazer uma calculadora é que o componente deve ter o foco para reagir ao keypressed. Ou seja, se o usuário pressionar as teclas 1, 2, 3 e 4, não vai obter resultado algum, a menos que a tecla sendo pressionada esteja em foco. Para resolver esse problema, você terá que usar um ActionMap e um InputMap, como descrito aqui.
Depois, para saber qual número foi pressionado, use o método getSource do evento actionPerformed. Por exemplo:
public class ButtonPressAction extends AbstractAction {
@Override public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnSoma)
//execute a ação do botão de somar.
else if (e.getSource() == btnSubtracao)
//executa a ação de subtrair
}
}
E assim por diante…
Obrigado pela ajuda =).
Acho que agora vou conseguir resolver o meu problema.
Obrigado.