Tray Icon nas diversas interfaces gráficas (linux & windows)
10 respostas
C
chackal_sjc
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?
aqui não estou encontrando essa classe quando tento chamar o java.awt.TrayIcon no netbeans.
Obrigado!
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/
Baixe também os docs.
[]s
Luca
G
gqueiroz
Apenas a titulo de informação,
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.
Abraços,
Gyowanny Queiroz
C
chackal_sjc
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,
packageTrayJdic;importjava.awt.event.*;importjavax.swing.*;importorg.jdesktop.jdic.tray.*;publicclassTestTray{publicstaticJMenuItemquit;publicTestTray(){ImageIconicon2=newImageIcon(getClass().getClassLoader().getResource("images/image1.gif"));TrayIconti=newTrayIcon(icon2,"JDIC tray Icon API Test",menu());ti.setIconAutoSize(true);ti.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){JOptionPane.showMessageDialog(null,"JDIC Tray Icon API Test!","About",JOptionPane.INFORMATION_MESSAGE);}});SystemTraytray=SystemTray.getDefaultSystemTray();tray.addTrayIcon(ti);}publicJPopupMenumenu(){ImageIconicon=newImageIcon(getClass().getClassLoader().getResource("images/image2.png"));JPopupMenumenu=newJPopupMenu("Tray Icon Menu");JMenuItemplaneta=newJMenuItem("planeta",icon);planeta.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevt){System.out.print("oba");}});menu.add(planeta);menu.addSeparator();JMenuItemquitItem=newJMenuItem("Quit");quitItem.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevt){System.exit(0);}});menu.add(quitItem);returnmenu;}publicstaticvoidmain(String[]args){newTestTray();}}
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.
Alguém saberia me informar o pq disso?
Obrigado.
K
Kknd
Sim, o Tray não funciona no KDE.
Z
zongman
Tem algum lugar que está escrito isso? pode ter algum jeito de contornar? :shock:
ou o chackal_sjc viajou…
H
homisinho
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
/* * Main.java * * Created on 6 de Setembro de 2007, 14:58 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */packageconfigurador;importjava.awt.AWTException;importjava.awt.Image;importjava.awt.MenuItem;importjava.awt.PopupMenu;importjava.awt.SystemTray;importjava.awt.TrayIcon;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.ImageIcon;importjavax.swing.JOptionPane;/** * * @author homisinho */publicclassMain{publicstaticSystemTraytray;/** Creates a new instance of Main */publicMain(){}/** * @param args the command line arguments */publicstaticvoidmain(String[]args)throwsAWTException{//Obtem o SystemTray da plataformatray=SystemTray.getSystemTray();//Passa para função para criar o menu e adicionarCriatry(tray);//////////////////////////////////////////////////Fconfigurara=newFconfigura();ra.setLocationRelativeTo(null);ra.setVisible(true);}publicstaticvoidCriatry(SystemTrayT)throwsAWTException{//Cria um menu Popup para o trayIconPopupMenupopupMenu=newPopupMenu();MenuItemmenuItem=newMenuItem("Sobre");menuItem.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){JOptionPane.showMessageDialog(null,"msg","titulo",JOptionPane.INFORMATION_MESSAGE);}});popupMenu.add(menuItem);popupMenu.add(newMenuItem("-"));menuItem=newMenuItem("Exit");menuItem.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){intopt=JOptionPane.showConfirmDialog(null,"Fechar?","SAIR",JOptionPane.YES_NO_OPTION);if(opt==JOptionPane.OK_OPTION){System.exit(0);}}});popupMenu.add(menuItem);//adiciona no tryIconImageimageIcon=newImageIcon("/imagens/teste.GIF").getImage();TrayIcontrayIcon=newTrayIcon(imageIcon,"name sistema",popupMenu);T.add(trayIcon);}}
alguem ai ja criou um tray que funcionou tanto em linux quanto em windows???