[RESOLVIDO]JTextField não atualiza

5 respostas
M

vou tentar ser o mais claro possivel com o meu erro..

c1.addKeyListener(new KeyAdapter() {

              @Override
            public void keyReleased(KeyEvent evt) {
 
              totalU1();
              tf1();
        
             fClass.Final(Double.parseDouble(c1.getText()),"c1");

                 
}});

esta faixa de código indica que cada vez que eu digitar o conteúdo na JTextField c1 ela vai mandar o seu valor para outra JTextField que está na classe cujo objeto é f.Class

eu mando o conteúdo pelo construtor...

public JTable Final(double padrao, String x) {

        total = new JTable();

        if (x.equals("c1")) {

            c1.setText(String.valueOf(padrao));

        }

aqui nesse código aparece o construtor recebendo o conteúdo que é a variável 'padrao'

e por seguinte faço uma verificação e mando o conteúdo para a JTextField destinada

o problema é o seguinte, ele manda na primeira vez, só que se eu trocar o conteúdo, ele nao troca na segunda JTextField.. por que razão nao descobri...
dei um System.out.println(); pra recuperar a JText, e ele mostra que trocou! mas quando vou ver na janela continua apenas o primeiro valor mandado..

o que poderia ser?

5 Respostas

M

na verdade eu posso resolver meu problema da seguinte maneira…

por exemplo: existem duas classes, a classe A e a classe B

eu quero mostrar na tela da classe A um valor de uma JTextField qualquer que está dentro de um JTable na classe B.

como eu faria isso??

abraço.

aikeda

Acho que não entendi muito bem, mas, vamos tentar…

Partindo do princípio que o valor original está na Tela B.
E você deseja copiá-lo para a Tela A.

Se você registrar o listener do teclado na tela B, a tela A já deverá estar instanciada e o textfield exposto para atualizá-lo. (é uma maneira de se fazer isso)

  1. Então, instancie primeiro a classe A e depois passe a mesma no argumento do construtor da classe B.
  2. Guarde A numa variável local em B.
  3. A cada evento, acesse o textfield em A e chame o .setText(stringAtual + stringAdicionada)

Acho que é isso…

M

aikeda

"3. A cada evento, acesse o textfield em A e chame o .setText(stringAtual + stringAdicionada) "

como eu acesso o textField???

ele está dentro de uma JTable… daí nao consigo chamar ele… só nao sei pq

aikeda

Uhmm, acho que tô começando a entender, mas pra ficar mais claro ainda,
não tem como você mandar um esquemático ou um print screen da sua tela e do que você quer fazer?

Mas deixa eu perguntar uma coisa, o seu textfield é uma célula dentro da sua tabela, certo?
Ou seja, você definiu um CellRenderer e um CellEditor para ele, não é?

Como é essa tabela que você está usando, qual a estrutura dela?

M

consegui cara!!! :smiley:

criei um método na classe B que devolve para a classe A o valor da JTextField que eu quero

só que eu deveria ter mandado o objeto da classe A pelo parametro desse método, e não instanciar a classe nos atributos.

ou seja, cada vez que eu digitar alguma coisa na classe B ele chama esse método que devolve para classe A

o valor digitado :wink:

Criado 22 de janeiro de 2010
Ultima resposta 22 de jan. de 2010
Respostas 5
Participantes 2