Prezados colegas,
Boa noite!
Gostaria que os amigos me ajudassem com uma dúvida. Estou criando uma aplicação utilizando o conjunto de bibliotecas swing, porém estou enfrentando um pequeno problema …
Nesta aplicação, eu criei um JFrame comum, e um JPanel. Dentro deste JPanel, eu adicionei outros JPanel’s ( menores ), e mais alguns componentes.
O que eu estou precisando, é desenhar graficamente ( linhas, quadrados, etc… ) dentro do JPanel principal, porém quando eu tento fazer isso ele praticamente apaga todos os outros componentes… permanecendo apenas o desenho.
Peço desculpas pela minha ignorância, gostaria de saber se tem um método, ou alguma biblioteca na qual dê para desenhar e adicionar componentes em um mesmo painel … sem que o fundo da área de desenho cubra os demais painéis…
Desde já agradeço…
Crie uma classe, que estende JPanel, onde você possa fazer esses desenhos. Sobreescreva o método paintComponent dessa classe para poder fazer os densenhos.
entanglement
Valeu brother, na verdade eu fiz desta maneira… criei uma classe estendendo JPanel, porém eu estava sobrescrevendo o método paint … e não o paintComponent …
Acho que era esse o motivo… vou utilizar o paintComponent.
Obrigado!
É esse o motivo. O paint chama 3 métodos:
paintBorder, que pinta a borda do seu painel;
paintComponent, que pinta o conteúdo do painel;
e paintChildren, que pinta o que vai em cima do painel.
Se vc sobrescrever o paint para colocar sua pintura, ele se comportará igual a somente o paintComponent. É uma boa ler os guias de boas práticas do Swing antes de sair sobrescrevendo componentes: http://java.sun.com/products/jfc/tsc/articles/painting/#swing
ViniGodoy
Vlw pela dica brother … vou dar uma lida neste artigo… parece ser interessante.
Obrigado.