Exato Nil.
Fiz um pequeno programinha agora, bem rapido, usando só o AWT, mas que deverá
funcionar no que você precisa com o Swing. Tenho uma interface parecida com a que você
propôs. O método void
textValueChanged(TextEvent e) é chamado sempre que o valor do TextField é alterado,
mesmo que tenha sido por um método textfield.setText("mudou") e ele esteja com
editable(false).
Espero que o código abaixo possa lhe ser útil.
import java.awt.*;
import java.awt.event.*;
public class eventoTextField extends Frame implements ActionListener,TextListener
{
TextField texto = new TextField(20);
Button ok = new Button ("ok");
TextArea result = new TextArea();
int contador;
public eventoTextField()
{
super("Titulo");
ok.addActionListener(this);
texto.addTextListener(this);
add(ok);
add(texto);
add(result);
texto.setEditable(false);
result.setEditable(false);
setLayout(new FlowLayout());
}
public void actionPerformed(ActionEvent e)
{
texto.setText(contador++ + ") Texto alterado");
}
public void textValueChanged(TextEvent e)
{
result.append("TextArea alterado"+"\n");
}
public static void main(String a[])
{
eventoTextField evt = new eventoTextField();
evt.setSize(500,300);
evt.show();
}
}
[]'s
Handerson F. Gomes
Nil Inacio Santos wrote:
> Caro Handerson,
>
> Antes de tudo, obrigado pela resposta.
>
> Peco desculpas, porem, por nao ter sido claro em meu e-mail.
>
> Meu jTextField nao e´ editavel, ou seja, nao recebe eventos diretos
> do usuario, senao eu teria usado o listener lostFocus().
>
> O texto e´ alterado por varias classes diferentes, por isso que eu
> quero que o jTextField "perceba" que seu valor foi alterado, para realizar
> os devidos ajustes.
>
> Grato,
>
> Nil
>
> -----Mensagem original-----
> De: Handerson Ferreira Gomes <[EMAIL PROTECTED]>
> Para: Nil Inacio Santos <[EMAIL PROTECTED]>
> Cc: [EMAIL PROTECTED] <[EMAIL PROTECTED]>; Javabr <[EMAIL PROTECTED]>
> Data: Sexta-feira, 5 de Novembro de 1999 08:49
> Assunto: Re: Mudanca de valor de um JTextField nao editavel
>
> Oi Nil.
>
> O novo modelo de tratamento de eventos do java, cada cada tipo de ação com
> uma interface diferente. Por exemplo, para acão no botão você usa os
> ActionListener, que também é utilizado
> quando o usuário pressiona ENTER dentro de um Textfield. Se você quise
> testar a ação do textfield após o enter, portanto, poderá adicionar o
> listener a ele e tratar dentro do método
> actionPerformed.
> Se você quiser tratar o evento durante a digitação dos valores no Textfield
> use a interface TextListener. O método addTextListener(this) adiciona o
> listener no componente e quando houver
> alguma ação o método void
> textValueChanged(TextEvent e) será invocado, de forma análoga ao
> button.addActionListener(this) e trata o evento em
> actionPerformed(ActionEvent e)
>
> Boa sorte na resolução da tarefa.
>
> []'s
> Handerson F. Gomes
>
> Nil Inacio Santos wrote:
>
> > Caros javanautas,
> >
> > Tenho um jTextField nao editavel, que recebera um valor numerico.
> > Gostaria de capturar o momento em que seu valor e´ alterado para ajustar o
> > label referente a ele, por causa do valor 1 - para nao obter "1 reais".
> > Testei os listeners actionPerformed, focusLost, inputMethodTextChanged,
> > propertyChange.
> >
> > Embora o normal fosse a propria funcao que troca o texto tambem
> > cuidar do label, gostaria de saber se tem como o jTextField se controlar.
> >
> > Grato,
> >
> > Nil Inacio Santos
> >
> > * Para nao receber mais e-mails da lista, acesse
> <http://www.sun.com.br:8080/guest/RemoteAvailableLists>, coloque seu e-mail,
> escolha a lista <[EMAIL PROTECTED]> e de um <submit>.
>
> * Para nao receber mais e-mails da lista, acesse
><http://www.sun.com.br:8080/guest/RemoteAvailableLists>, coloque seu e-mail, escolha
>a lista <[EMAIL PROTECTED]> e de um <submit>.
* Para nao receber mais e-mails da lista, acesse
<http://www.sun.com.br:8080/guest/RemoteAvailableLists>, coloque seu e-mail, escolha a
lista <[EMAIL PROTECTED]> e de um <submit>.