Modificar JTextField dinamicamente

7 respostas
converge

Pessoal, estou com uma dúvida assim:

a ‘classe A’ tem o JFrame e seus componentes, entre eles existe um campo chamado txtAuthor que é um JTextField, até aí beleza. tenho um método na ‘classe A’ que alterar o valor do txtAuthor dinamicamente através de uma ‘classe B’ como descrito abaixo.

O problema é que o txtAuthor não tem o seu conteúdo alterado se uso a chamada da ‘classe B’ para alterar o objeto da ‘classe A’, se faço a chamada à partir da ‘classe A’, o txtAuthor é modificado normalmente. alguém sabe o que posso estar fazendo de errado ?

na classe A:

/**
     * Populate the screen with values from XML file saved by the user
     */
    public void PopulateWithXMLContent(String name) {
        //this.txtAuthor.setText(name);
        this.txtEmail.setText("work pls!");        
    }

na classe B:

jindypub = new IndyPublisher();
         jindypub.PopulateWithXMLContent(attr.getLocalName(0));

código completo:
http://satangoss.indymedia.org/svn/indypub/IndyPublisher/src/org/indymedia/brasil/IndyPublisher.java (classe A)
http://satangoss.indymedia.org/svn/indypub/IndyPublisher/src/org/indymedia/brasil/IndyXMLReader.java (classe B)

7 Respostas

converge

up!
pessoal, to precisando muito resolver esse problema, alguém poderia me dar uma mão ?

fabiofalci

Cara, não olhei o teu código.
Mas tu quer mudar o valor de txtAuthor certo?
Mas no código ali em cima está mudando o valor de txtEmail

converge

na verdade é txtAuthor, me enganei, na real ja testei com o txtAuthor também.

ViniGodoy

Crie um método getElement(String element) na classe IndyXml e então no JFrame faça:
txtAuthor.setText(xml.getElement(“author”));

Se vc não criar um método para acessar o que a IndyXml tem, não terá como fazer o que quer!

converge

mesmo que

attr.getLocalName(0)

tenha o que eu preciso ?

ViniGodoy

Como attr está encapsulado, você não conseguirá acessa-lo.

O ideal é você criar uma interface agradável de usar e que minimize a possibilidade de erros. Acho que, se não fosse para ser assim, você nem precisaria criar uma classe XMLReader. Usaria o componente direto.

Mas a grande sacada do encapsulamento é justamente esse não? Deixe a complexidade de manipular um XML para a sua classe reader, e faça as outras enxergarem uma funcionalidade simples, fácil e pouco sujeita a erros.

converge

não faz sentido,
se não

jindypub.PopulateWithXMLContent(“c mon!”);

deveria funcionar

Criado 13 de fevereiro de 2008
Ultima resposta 18 de fev. de 2008
Respostas 7
Participantes 3