[size=13]
Boa tarde.
Se alguém puder me ajudar, ficarei muitíssimo grato.
Estou com dificuldade no seguinte:
Quero criar uma classe apenas para tratar eventos de botão (separar a lógica de negócio da lógica de apresentação), a classe que contém o botão estende do JFrame; é uma espécie de calculadora e os botões são operações aritméticas (soma, divisão, multiplicação e subtração).
Dentro da classe que estende do JFrame (Calculadora) criei um objeto ouvinte, pertencente a classe que eu criei para tratar eventos. Fiz com que esse objeto seja ouvinte dos botões.
Até aí tudo maravilha, minha dificuldade é que necessito acessar um objeto JTextFied (que é um atributo da classe Calculador) de dentro do método que trata os eventos (actionPerformed, esse método está na classe que criei para tratar eventos) e não sei como faço para acessa-lo.
Como sugestão você pode criar um objeto action, que implementa o AbstractAction, e pode retornar esse action para a sua classe onde tem os JComponents.
Vamos supor:
Você tem a classe do layout, que extende de JFrame, nessa classe há os JComponentes (JTextField, JTextArea…) nela vc atribui uma action para cada componente que participará do evento.
Essa action é retornada por um método dessa classe externa. Ex: MeusEventosCalc
MeusEventosCalc events = new MeusEventosCalc();
events.somar(); //retorna um objeto action, do qual já tem o evento definido do que o componente irá fazer.
Você pode criar os métodos de uma forma similar:
Action action = new AbsctractAction(
{ public actionPerformed(ActionEvent e) { … } });
atribua cacteristicas nessa action como title
action.putValue(Action.NAME, “+”);
retorna a figura… return action;
cria a instancia dessa classe “ouvidora” na classe do layout e chame os métodos necessários, atenção, NÃO testei nada do que eu escrevi aqui, portanto eu posso ter errado alguma coisa, mas é mais ou menos isso.