Java Swing - Icones e Fotos

3 respostas
A

Boa tarde,

Estou tendo dificuldades em export os icones com: Export-> “Runnable Jar File”
Coloquei TrayIcon já feito que eu achei na internet.
Porém quando exporto o “Runnable Jar File” não vem com os icone…

// Inicio
				if (SystemTray.isSupported()) {
					final SystemTray systemTray = SystemTray.getSystemTray();
					final TrayIcon trayIcon = new TrayIcon(getImage("..//src//gifs//010.gif"),
							"Acesso Rápido em execução!");
					trayIcon.setImageAutoSize(true);

					// Mouse Adapter
					MouseAdapter mouseAdapter = new MouseAdapter() {
						@Override
						public void mouseClicked(MouseEvent e) {
							trayIcon.displayMessage("Acesso Rápido", "Abrir Menu", TrayIcon.MessageType.INFO);
							systemTray.remove(trayIcon);
							setVisible(true);
						}
					};

					trayIcon.addMouseListener(mouseAdapter);

					try {
						systemTray.add(trayIcon);
						setVisible(false);
					} catch (Exception e) {
						e.printStackTrace();
					}
				}

3 Respostas

ViniGodoy

Se você está usando o método createImage do tutorial da Oracle, ele usa um Resource. Nesse caso, é incorreto informar a pasta source ou usar caminhos relativos.

protected static Image createImage(String path, String description) {
        URL imageURL = TrayIconDemo.class.getResource(path);
         
        if (imageURL == null) {
            System.err.println("Resource not found: " + path);
            return null;
        } else {
            return (new ImageIcon(imageURL, description)).getImage();
        }
    }

A imagem deve estar em um dos seus pacotes, como você faria com um fonte. E você deve utilizar o caminho a partir da raiz dos seus fontes. Por exemplo, se sua imagem estiver na pasta br.guj.gifs o certo seria usar assim:

getImage("/br/guj/gifs/010.gif")

Observe que no caso do getResource, usado dentro do método createImage, você deve respeitar as letras maiúsculas e minúscula do arquivo pois, do contrário do Windows, o .jar é case sensitive.

A

Help

A

No meu caso eu fiz:

final TrayIcon trayIcon = new TrayIcon(getImage("Utilitários/src/gifs/free-commercial/16.gif"), "Acesso Total em execução!");

Porém não funciona agora se eu colocar:

final TrayIcon trayIcon = new TrayIcon(getImage("../Utilitários/src/gifs/free-commercial/16.gif"), "Acesso Total em execução!");

ou

final TrayIcon trayIcon = new TrayIcon(getImage("F:/PortableApps/EclipsePortable/- Projetos/Utilitários/src/gifs/free-commercial/16.gif"), "Acesso Total em execução!");

Ele funciona…
Obrigado pela atenção!

Criado 4 de maio de 2014
Ultima resposta 9 de mai. de 2014
Respostas 3
Participantes 2