Desabilitar todos JTextfield

4 respostas
Naruto

bom dia

tem como eu desabilitar todos os Jtextfield sem eu ter que ficar desabilitando um por um???

tp apenas desabilitando o panel por exemplo???
vlwww

4 Respostas

Link_pg

Olá!

Você pode dar um getComponents() no container, se não me engano vai retornar todos os componentes (Component[]) daquele container, fazendo um loop entre eles e desabilitando-os…

algo assim:

for(Component c : container.getComponents()){
    if(c instanceof JTextField){
        c.setEditable(false);
    }
}

Abraços

S

Se vc for usar isso muitas vezes pode fazer uso de uma pattern(Observer Pattern) onde vc cria um metodo observador e diversos ‘listeners’ e os cadastra(todos os textfields tem que ser cadastrados) ai quando vc quiser, só mandar ele deixar todos os textfields desabilitados. Ai quando quiser habilitar apenas um ou outro, retira ele da lista do observador. Creio que esse conceito pode ajudar.

Naruto

pode me da um exemplo disso?

S

da uma procurada na net cara, tem bastante coisa.

http://pt.wikipedia.org/wiki/Observer aqui por exemplo.

é legal vc dar uma lida no head first que trata de design patterns(eu estou lendo agora hehe) pois passa muitos conceitos uteis e que podem ser implementados em diversas partes do seu código.
por exemplo, quando vc cria uma ação de click em um botão(nao aparece um addActionListener?) então, vc está adicionando aquela ação a um Observador que vai ‘mostrar’ a todos os seus ‘listeners’ na hora que vc pedir, sem precisar ficar setando um por um. entendeu?

Criado 6 de agosto de 2008
Ultima resposta 6 de ago. de 2008
Respostas 4
Participantes 3