Ajuda para fazer um simulador de celular

Amigos,

Estou fazendo um simulador de celular em swing e tenho dificuldades de implementar a digitação através do uso do ‘teclado’ do celular. Tenho um JTextField recebendo a digitação, fazendo o papel de ‘tela’ do celular.
Estou implementando uma classe externa para tratar a ação de clique em cada botão.
Nas classes externas, por exemplo, Botao1, o código é o seguinte:

import java.awt.event.*;
class Botao1 implements ActionListener{
public void actionPerformed (ActionEvent e){
Celular cel = new Celular();
cel.setTexto(“1”);
}
}

O método setTexto dentro de Celular é o seguinte:

public void setTexto(String txt){
textoInput.append(txt);
jtfTextInput.setText(textoInput.toString());
}

Estou querendo receber o texto digitado em um StringBuffer para ter facilidade em manuseá-lo. O JTextField recebe o StringBuffer a cada tecla pressionada.

Este código compila normalmente. Mas a questão é: esta é a melhor implementação? Estou instanciando o próprio Celular dentro de uma classe que é chamada pela classe Celular!!! Posso passar o Objeto Celular dentro da chamada da classe? ( jb1.addActionListener(new Botao1()); )

Alguém já tem uma implementação semelhante para mostrar.

Antecipadamente agradeço pela ajuda.

[]'s.

Deixa eu ver se entendi.

Você está querendo saber como separar a lógica da apresentação com Swing. Bom, você pode partir para implementações bem elegantes usando XWork ou Spring, por exemplo. Ou fazer algo mais humilde como isso. Vai depender o tamanho do seu projeto. :wink:

Vince,

Ficou meio confuso, né!?!? (rs) Foi mal!! Vou tentar explicar melhor agora!!

O negócio é que estou achando estranho de uma classe main denominada Celular, chamar uma outra através de aciotnListener (denominada Botao1) e dentro de Botao1 fazer uma instância de Celular, classe da qual chamei o Botao1. Melhorou?!?

O que quero fazer é o seguinte: ao clicar num botão da minha classe Celular, chamar uma classe externa (chamada Botao2) que terá uma inteligência para determinar qual será a letra retornada pelo clique neste botão. (Poderá ser “2”, “a”, “b” ou “c”, por exemplo). Preciso que a classe chamada retorne para a principal qual a letra será agregada (append) a um StringBuffer. Mas o método actionPerformed tem que ser void. Por isso criei na classe Celular o método setTexto, que é utilizado para fazer o append num StringBuffer.

Sacou? 8O

Obrigado pela ajuda!

[]'s.

olha, o negócio e vc fazer o tratamento de eventos na main mesmo…