Acessar valor de um JText utilizando design patterns (qual o procedimento)

Olá,

Estou desenvolvendo um sistema, e estou utilizando o pattern MVC, ou tentando utilizar este pattern.

Ja programo ha algum tempo OO, mas para web. Estou encontrando algumas dificuldades para aplicações desktop com JAVA.

Seguinte:
Tenho um formulário de cadastro, com N campos (um formulário de cadastro de clientes por exemplo, com campo nome, telefone, email e etc).

Então, subentende-se que eu tenha 3 classes para manipulção e tratamento de dados, estou utilizando Value Objects, Business Objects e Data Access Objects …

Criei o form (JFrame) de cadastro no package default, e as classes que tratam os eventos de mouse em outro package.

Como eu faço para acessar os valores dos campos do formulario para iniciar a passagem do objeto Cliente entre camadas antes de inserir no banco.

Exemplo:
Eu tentei criar um método dentro do JFrame chamado getClienteFromPanel(); que me retornaria um bean Cliente assim q o botão Salvar fosse clicado.
Depois, adicionei um mouseListener ao botão “salvar”.:
btnSalvar.addMouseListener(new Events.BtnSalvar(this.getClienteFromPanel());

Só que ele não executa a função na hora em que o mouse é clicado e sim na hora que eu adiciono o listener no botão …

Em suma, como eu faço para acessar os valores dos Texts de um JFrame atraves de outra classe, sem passar o JFrame por parametro de método.

[]'s

JText quer dizer JTextField?

Então tenta assim:

JTextField text = new JTextField();
String conteudo = text.getText();

Ola,

Obrigado pela resposta, mas não é isso não fera …

Acessar o valor do JTextField dentro do JFrame eu sei como é …

o problema é criar um Bean, um Value Object de acordo com os dados informados no JTextField, e depois transportar este Objeto entre camadas até chegar ao Model (DAO) … releia o tópico, que voce vai entender qual é o meu problema!

[]'s

Só um detalhe, pelo que eu sei, MVC não é um design pattern, e sim um architectural pattern.

Alguém me corrija caso eu esteja errado.

T+

Acho que você teria que fazer assim:

btnSalvar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { getClienteFromPanel(); // pra onde vai enviar isso? } });

T+

Isso, desculpe, uma má colocação, é um padrão de arquitetura mesmo … mas que seja, qual seria a resolução da minha pergunta .

[]'s

Não seria o que eu coloquei acima??? Ou não deu certo??

T+

Ok, valeu Diego, mas o seguinte …

no seu código:

btnSalvar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { getClienteFromPanel(); // pra onde vai enviar isso? } });

Eu instancio um ActionListener no momento em que vou adicionar um actionListener ao Botão, ok, até ai tudo bem.

Mas, como seria se eu tivesse uma classe de Eventos, que implementasse a interface ActionListener, e estivesse em outro package ?

Tipo, no meu Jframe eu tivesse o seguinte trecho de código:

[code]btnSalvar.addActionListener(new Eventos.PerformedActionListener(this.getClienteFromPanel()));

private Cliente getClienteFromPanel()
{
return new Cliente (this.txtNome.getText(), this.txtTelefone.getText());
}[/code]

e depois, em outro package (Eventos), eu tivesse a seguinte classe:

[code]package Eventos;

public PerformedActionListener implements ActionListener {

private Cliente _cliente;

public PerformedActionListener(Cliente c)
{
      this._cliente = c;
}

 public void actionPerformed(ActionEvent evt) {
        ClienteBO clienteBo = new ClienteBO(this._cliente);
         JOptionPane.showMessageDialog(null, this._cliente.getNome());

 }

}[/code]

A principio, parece funcionar bem, porem ele primeiro vai executar a função getClienteFromPanel();, quando na verdade esse método deveria ser executado apenas quando eu clicasse no botão salvar

Alguem pode me ajudar

Desculpe o flood …

Continuo na duvida, se alguem puder ajudar …