Criei um componente personalizado usando um JToolBar com 5 botões, e adicionei o mesmo a paleta do netbeans.
Criei um novo projeto e adicionei o componente criado.
Como faço para adicionar eventos nos botões que estao dentro do JToolBar personalizado???
Problemas com Componente Personalizado
8 Respostas
Seu JToolBar personalizado precisa oferecer métodos públicos que exponham os botões contidos nele e/ou permitam a adição de eventos.
Vc teria algum exemplo, de adicionar um evento por “parametro” ja tentei tambem, mas nao consegui 
Tentei colocar os botoes como publicos, mas não consegui acessa-los.
Segue em anexo um pequeno programa exemplificando o que citei. O programa foi criado com o NetBeans 6.7 RC2 e o JDK 1.6.14. As partes essenciais estão em PainelComToolbar.java e FrameTeste.java.
Amigo, funcionou perfeitamente, mas qnd adiciono como um componente na paleta, e tento adicionar em outro projeto, ele força que as packages tenham o mesmo nome por exemplo sua package era testejtoolbar, se eu tentar adicionar em um panel que tenha esteja em um package como nome diferente do seu, ele da uma mensagem de erro “Os componentes do pacote padrão não podem ser usados fora do pacote padrão.”
Isso não é difícil de resolver. Você quer usar o componente em vários projetos? Passos sugeridos (suponho que você está usando o NetBeans):
- Crie um novo projeto Java, vazio;
- Crie um novo package, com um nome bastante genérico, e copie para dentro dele a classe PainelComToolbar.java;
- Mude o nome da classe PainelComToolbar.java para algo mais genérico;
- Compile o projeto, para gerar um arquivo JAR contendo o componente;
- Registre uma biblioteca no NetBeans apontando para o JAR criado no passo anterior (Tools -> Libraries -> New Library);
- Registre na paleta de componentes o componente contido na biblioteca (Tools -> Palette -> Swing/AWT Components -> Add From Library).
Agora é só usar o componente no projeto que quiser.
Isso não é difícil de resolver. Você quer usar o componente em vários projetos? Passos sugeridos (suponho que você está usando o NetBeans):
- Crie um novo projeto Java, vazio;
- Crie um novo package, com um nome bastante genérico, e copie para dentro dele a classe PainelComToolbar.java;
- Mude o nome da classe PainelComToolbar.java para algo mais genérico;
- Compile o projeto, para gerar um arquivo JAR contendo o componente;
- Registre uma biblioteca no NetBeans apontando para o JAR criado no passo anterior (Tools -> Libraries -> New Library);
- Registre na paleta de componentes o componente contido na biblioteca (Tools -> Palette -> Swing/AWT Components -> Add From Library).
Agora é só usar o componente no projeto que quiser.
Amigo, isto eu ja tinha feito, o problema é que qnd crio o componente em um package por exemplo “teste” e compilo o .jar, eu so consigo adicionar o componente em outro projeto, se o mesmo possuir um package “teste”, se eu tentar importar este componente em um package diferente ele nao funciona, certo ???
Deveria funcionar com os passos que listei, o comportamento que você descreve não é normal. Inclusive, é assim que componentes personalizados são criados e distribuídos: compilados num package de nome específico, empacotados num JAR e instalados na IDE a partir desse JAR. Mas o que você citou me faz pensar no seguinte: no arquivo Java em que você codificou seu componente personalizado, você escreveu “class XYZ” ou “public class XYZ”? Se você omitir a palavra-chave public, o componente só poderá ser “enxergado” por classes que estiverem no mesmo package que ele.
Amigo, muito obrigado, ao que parece foi oreiada minha rsrsr… eu não tinha implementado todos os get set, apos a implementação dos mesmos ele funcionou numa boa… Muito Obrigado.