Criei uma tela em swing utilizando figuras externas como ícones nos botões.
Funcionou corretamente no Eclipse, mas quando gero o arquivo .jar os ícones não aparecem e o nome dos botões ficam desconfigurados.
Criei uma tela em swing utilizando figuras externas como ícones nos botões.
Funcionou corretamente no Eclipse, mas quando gero o arquivo .jar os ícones não aparecem e o nome dos botões ficam desconfigurados.
Alguém sabe oq pode ser???
Obrigado, Sidney.
Ele simplismente num tá achando os arquivos, posta o código pra gente ver!!!
S
sidiii
Ta aí, em anexo tem 2 Print Screen, um no eclipse e outro no arquivo.jar
/** ******************* Painel Sul - Botões ******************* */painelSul=newJPanel(newFlowLayout(FlowLayout.RIGHT));// Botão EnviarbotaoEnviar=newJButton("Enviar",newImageIcon("imagens/ok.png"));// botaoEnviar.setPressedIcon(new ImageIcon("teste.gif")); // imagem ao// pressionarbotaoEnviar.addActionListener(this);botaoEnviar.setMnemonic(KeyEvent.VK_E);botaoEnviar.registerKeyboardAction(this,KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0),JComponent.WHEN_FOCUSED);painelSul.add(botaoEnviar);// Botão CancelarbotaoCancelar=newJButton("Cancelar",newImageIcon("imagens/cancel.png"));botaoCancelar.addActionListener(this);botaoCancelar.setMnemonic('C');botaoCancelar.registerKeyboardAction(this,KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0),JComponent.WHEN_FOCUSED);painelSul.add(botaoCancelar);// Botão Limpar CamposbotaoLimpar=newJButton("Limpar Campos",newImageIcon("imagens/page_edit.png"));botaoLimpar.addActionListener(this);botaoLimpar.setMnemonic('L');botaoLimpar.registerKeyboardAction(this,KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0),JComponent.WHEN_FOCUSED);painelSul.add(botaoLimpar);// Botão SairbotaoSair=newJButton("Sair",newImageIcon("imagens/fechar.png"));botaoSair.addActionListener(this);botaoSair.setMnemonic('S');botaoSair.registerKeyboardAction(this,KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0),JComponent.WHEN_FOCUSED);painelSul.add(botaoSair);/** ******************* Painéis ******************* */add(painelNorte,BorderLayout.NORTH);add(painelCentro,BorderLayout.CENTER);add(painelSul,BorderLayout.SOUTH);/** ******************* Configurações da Janela ******************* */Containertela=getContentPane();pack();// Ajusta tamanho da janela aos seus componentes// tela.setBackground(Color.BLUE);// Seta cor de fundo.// tela.setBackground(new Color(0, 20, 100));// Ou assim.setVisible(true);// mostra janela// setResizable(false);// Impede redimendionamentosetLocationRelativeTo(null);// Faz com que a janela fique centralizada.SetRootPane().setDefaultButton(botaoEnviar);// atende a tecla enter.// Define um Icone para a tela.setIconImage(newImageIcon("teste.gif").getImage());// Impede o fechamento da janela.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);// Evento relacionado ao clicar em fechar janela.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){confirmaSaida();}});}
L
Luiz-SP
botaoCancelar = new JButton("Cancelar", new ImageIcon("imagens/cancel.png"));
Olha no Meta-Inf do seu jar, mas se não me engano o netbeans mapeia da seguinte forma:
-no mesmo diretório que vc colocar seu jar vc deve colocar o diretório imagens
-Dentro do NB use a opção classpath para adicionar o arquivo.
CONSELHO: Veja na pagina da sun ou o tutorial da aqui do GUJ para como criar arquivos jar, tente fazer um fazer frame simple com imagem na mão e só depois use o nb, ficar dependendo da IDE nunca é um boa idéa, uma coisa é usar a IDE pra te ajudar, outra coisa é não consegui fazer o que vc tem de fazer sem a IDE.
H
hlds
jogue a pasta /imagens dentro do dir onde ta o .jar e execute p ve se pega.
F
fuzzyMind
Para carregar imagens em um aquivo utilize na jdk 5 :
Senao utilize:
Sendo que o parametro do metodo eh o caminho da imagem no seu classpath.