Olá a todos, sou novo na comunidade e estou com uma dúvida sobre o Java.Swing.
Sou estudante e estou começando agora com Java.Swing, já aprendi bastante coisa pesquisando mas travei nisso.
O problema é o seguinte:
Eu tenho um JFrame com vários elementos dentro dele, JLabel, JPanel, etc… há alguma forma de generalizar um comando pra todos os JPanels ou JLabels ou sejá o que for?
Tipo, um comando que possa deixar todos os JPanels desabilitados ou invisíveis?
Bom não ficou bem claro o que voce quer dizer com comando generalizado, o que voce pode fazer é colocar varios componentes dentro de um painel e depois alterar a propriedade para setVisible(false) para esconder os componentes. Tenho bastante experiencia com swing te aconselho a usar o netbeans e estudar bastante layout. Acho que de inicio está apostila te ajudará bastante como me ajudou.
Bom, é exatamente isso eu queria saber se seria possível fazer todos ficarem visiveis ou invisiveis sem ter que por de 1 em 1, mas sim todos, ou um conjunto deles.
Amigo, todos os containers Swing (como JFrame, JPanel, etc) possuem um método chagado getComponents(), que retorna um array de Components ( Component[]).
Dessa forma, você pode iterar por esse array e ir definindo, pra cada Component, as propriedades que você precisar.
Você também pode iterar da maneira antiga usando índices, através dos métodos getComponentCount() e getComponent(int) .
se setar como false o visible do panel 1, todos os labels também ficarão invisíveis e ao voltar o panel 1 com o visible true, os estados dos demais componentes voltarão como estavam.
Aham, andeb, isso dai eu já tinha notado, uma coisa chata que acontece é você clicar em um menu e ficar Panels um abaixo do outro, o que eu queria era ao clicar no menu fechar todos os panel e abrir apenas o correspondente ao menu.
Mas isso é problema de novato mesmo :lol: todo mundo tem que passar por essas coisas um dia hehehe