[RESOLVIDO] TextField.getText() retorna "" dentro de uma Thread

2 respostas
ailujana

pessoal, estou com um problema que (pra mim) simplesmente não faz sentido… tenho um textfield cujo método .getText() funciona normalmente, porém, quando tento utilizar esse método dentro de uma thread, o .getText() retorna uma string vazia. Alguém sabe me dizer por que isso acontece? :cry:

//evento que inicia o player (até aqui tudo bem)
public void actionPerformed(ActionEvent arg0) {
        if (arg0.getSource() == jButton2) {
            //cria a thread que controla o player
            if (!playing) {
                System.out.println(jTextField8.getText()); //aqui o println imprime o endereço da musica corretamente
                playerThread = new Thread(new Audicao());
                playerThread.start();
                playing = true;
            }
        }
}

//metodo 'run()' da interface Runnable
public void run() {
        try {
            System.out.println(jTextField8.getText());  //aqui o println imprime um "", ou seja, nada... ¬¬
            in = new FileInputStream(jTextField8.getText()); //e consequentemente aqui dá erro... :/
            player = new Player(in);
            player.play();
            playing = false; //depois que terminou de tocar a musica seta playing = false
        } catch (Exception e) {
            e.printStackTrace();
        }

PS.: ambos os métodos estão dentro da mesma classe

2 Respostas

ViniGodoy

Não deveria ser:

playerThread = new Thread(this);

?

SE você faz um new, e Audicao é o nome da classe que contém o JTextField, então vc está criando um novo JTextField.

ailujana

obrigada pela ajuda, nem tinha me dado conta…

Criado 20 de junho de 2010
Ultima resposta 20 de jun. de 2010
Respostas 2
Participantes 2