Olá!
Estou precisando de uma biblioteca de tray icon (para exibir o íconezinho na bandeija do sistema) que funcione tanto no Gnome quanto do KDE e no windows. Alguém conhece?
[quote=chackal_sjc]Tem como você dar um exemplo do uso dela?
aqui não estou encontrando essa classe quando tento chamar o java.awt.TrayIcon no netbeans.
Obrigado![/quote]
Esta classe só existirá na próxima versão do Java (a que seria chamada de Mustang) que deve sair na primeira semana de dezembro. Mas você pode baixar o build 98 que já está bem estável e provavelmente bem igual à versão final. Eu estou usando direto para tudo. O link é http://download.java.net/jdk6/
Recentemente tivemos um problema na utilização do JDIC no projeto XMPM da BenQ-Siemens. No linux ocorre, frequentemente, o congelamento do X (ambiente gráfico), tanto no KDE como no GNOME, quando alguma operação, tenta ser realizada com o tray icon e consequentemente é preciso reiniciar o sistema operacional.
Tentamos recompilar as libs em C (.so) que vem junto com a API mas mesmo assim o travamento persistiu.
E não encontramos nenhum bug deste gênero reportado.
Sendo assim deixo esta informação para que fiquem atentos caso alguém passe por esse problema no linux.
eu usei a jdic aqui no linux e funcionou perfeitamente… no KDE e no GNOME… não testei no windows ainda pq nao tenho as dll dela… mas no linux funcionou certinho… gostei muita ta biblioteca…
falando nisso…
como que faço para chamar outro aplicativo pelo meu programa em java??
por exemplo… eu tenho um outro programa Tecnotel.jar e queria executa-lo pelo meu programinha de systemtray (.jar separado)… tem como??
tem como também fazer comandos do sistema pelo java? Por exemplo… comandos em bash para unix…
Agora a minha…
estou tendo problemas com um código que utiliza a biblitoteca Jdic no KDE,
package TrayJdic;
import java.awt.event.*;
import javax.swing.*;
import org.jdesktop.jdic.tray.*;
public class TestTray {
public static JMenuItem quit;
public TestTray() {
ImageIcon icon2 = new ImageIcon(getClass().getClassLoader().getResource("images/image1.gif"));
TrayIcon ti = new TrayIcon(icon2, "JDIC tray Icon API Test", menu());
ti.setIconAutoSize(true);
ti.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null,"JDIC Tray Icon API Test!", "About",JOptionPane.INFORMATION_MESSAGE);
}
});
SystemTray tray = SystemTray.getDefaultSystemTray();
tray.addTrayIcon(ti);
}
public JPopupMenu menu(){
ImageIcon icon = new ImageIcon(getClass().getClassLoader().getResource("images/image2.png"));
JPopupMenu menu = new JPopupMenu("Tray Icon Menu");
JMenuItem planeta = new JMenuItem("planeta",icon);
planeta.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.print("oba");
}});
menu.add(planeta);
menu.addSeparator();
JMenuItem quitItem = new JMenuItem("Quit");
quitItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.exit(0);
}});
menu.add(quitItem);
return menu;
}
public static void main(String[] args){
new TestTray();
}
}
ao se clicar como botão direito do mouse no ícone criado, no KDE parece que “o botão fica falhando”, o menu pisca rapidamente, ás vezes aparece. Testei no GNOME e no Win funcionou blz.
ola pessoal,
estou re-postando esse tópico para relembrar o assunto…
eu estou agora criando uma aplicação e irei utilizar o tray, mas quero q a mesma funcione em todas as plataformas, inclusive na interface do KDE no linux, testei aqui no windows XP e ate mesmo aqui o icone n apareceu.
Na barra de ferramentas apareceu o espaço onde o icone deveria aparecer, e clicando invertido no espaço abre o menu, só q a imagem do icone n aparece…
testei com várias extensões de img, .ICO .GIF .PNG
[code]/*
Main.java
Created on 6 de Setembro de 2007, 14:58
To change this template, choose Tools | Template Manager
@author homisinho /
public class Main {
public static SystemTray tray;
/* Creates a new instance of Main */
public Main() {
}
/**
@param args the command line arguments
*/
public static void main(String[] args) throws AWTException {
//Obtem o SystemTray da plataforma
tray = SystemTray.getSystemTray();
//Passa para função para criar o menu e adicionar
Criatry(tray);
//////////////////////////////////////////////////
Fconfigura ra= new Fconfigura();
ra.setLocationRelativeTo(null);
ra.setVisible(true);
}
public static void Criatry(SystemTray T) throws AWTException{
//Cria um menu Popup para o trayIcon
PopupMenu popupMenu = new PopupMenu();
MenuItem menuItem = new MenuItem(“Sobre”);
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null,“msg”, “titulo”, JOptionPane.INFORMATION_MESSAGE);
}});
popupMenu.add(menuItem);
popupMenu.add(new MenuItem("-"));
menuItem = new MenuItem("Exit");
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int opt = JOptionPane.showConfirmDialog(null, "Fechar?", "SAIR", JOptionPane.YES_NO_OPTION);
if (opt == JOptionPane.OK_OPTION) {
System.exit(0);
}
}});
popupMenu.add(menuItem);
//adiciona no tryIcon
Image imageIcon = new ImageIcon("/imagens/teste.GIF").getImage();
TrayIcon trayIcon = new TrayIcon(imageIcon, "name sistema", popupMenu);
T.add(trayIcon);
}
}
[/code]
alguem ai ja criou um tray que funcionou tanto em linux quanto em windows???