No meu código, adicionei botões numa barra, mas os ícones não aparecem:
Acho que se não tivesse achado a imagem, teria dado um erro, mas compila e roda normalmente:
Não sei se o código é suficiente para mostrar, mas…
JMenuBar barraCadastros = new JMenuBar();
JButton botaoEstados = new JButton();
JButton botaoCidades = new JButton();
JButton botaoPessoas = new JButton();
Icon iconeEstados = new ImageIcon("estados.gif");
Icon iconeCidades = new ImageIcon("cidades.gif");
Icon iconePessoas= new ImageIcon("pessoas.gif");
barraCadastros.add(botaoEstados, iconeEstados);
barraCadastros.add(botaoCidades, iconeCidades);
barraCadastros.add(botaoPessoas, iconePessoas);
painelCadastros.add(barraCadastros);
Primeira coisa que acho que você deve considerar…
Porque nao usa JMenu, JMenubar e JMenuItem ao invés de colocar um JButton dentro de um menu?
B
brunolfagundes
Realmente, melhor. Mas quero fazer uma barrade menu com ícones, entende? Mudei pra JMenu mas o problema ainda persiste.
JMenuBar barraCadastros = new JMenuBar();
Icon iconeEstados = new ImageIcon("estados.gif");
Icon iconeCidades = new ImageIcon("cidades.gif");
Icon iconePessoas= new ImageIcon("pessoas.gif");
JMenu botaoEstados = new JMenu();
JMenu botaoCidades = new JMenu();
JMenu botaoPessoas = new JMenu();
barraCadastros.add(botaoEstados,iconeEstados);
barraCadastros.add(botaoCidades,iconeEstados);
barraCadastros.add(botaoPessoas,iconeEstados);
painelCadastros.add(barraCadastros);
Compila e roda normal, mas fica a barrinha pequena sem nenhuma imagem. E a imagem esta dentro do pacote src do projeto.
C
ChronosSage
brunolfagundes:
No meu código, adicionei botões numa barra, mas os ícones não aparecem:
Acho que se não tivesse achado a imagem, teria dado um erro, mas compila e roda normalmente:
Não sei se o código é suficiente para mostrar, mas...
JMenuBar barraCadastros = new JMenuBar();
JButton botaoEstados = new JButton();
JButton botaoCidades = new JButton();
JButton botaoPessoas = new JButton();
Icon iconeEstados = new ImageIcon("estados.gif");
Icon iconeCidades = new ImageIcon("cidades.gif");
Icon iconePessoas= new ImageIcon("pessoas.gif");
barraCadastros.add(botaoEstados, iconeEstados);
barraCadastros.add(botaoCidades, iconeCidades);
barraCadastros.add(botaoPessoas, iconePessoas);
painelCadastros.add(barraCadastros);
se os botoes sao exibidos e a imagem n, eentao é pq a imagem n foi encontrada pela aplicaçao
crie a seguinte classe ou adapte os metodos na sua aplicaçao
packagep237447;importjava.io.File;importjava.io.IOException;importjavax.imageio.ImageIO;importjavax.swing.ImageIcon;publicclassImagem{publicImagem(){}/** * Abre uma imagem num diretorio * c:/pasta/imagem.png ou c:\\pasta\\imagem.png * @param imagem * @return Image */publicImageIconabrirImagemExterno(Stringimagem){try{returnnewImageIcon(ImageIO.read(newFile(imagem)));}catch(IOExceptionex){returnnull;//imagem n encontrada ou invalida}}/** * Abre uma imagem dentro do programa * pacote/imagem.png * se for src * imagem.png * @param imagem * @return Image */publicImageIconabrirImagemLocal(Stringimagem){try{returnnewImageIcon(ImageIO.read(getClass().getClassLoader().getResource(imagem)));}catch(IOExceptionex){returnnull;//imagem n encontrada ou invalida}}}
B
brunolfagundes
Consegui resolver gente. O caminho da imagem estava certinho, era outra coisa. Obrigado assim mesmo!