Aplicação rodando em segundo plano e icone no tray

Gostaria se saber como que eu faço para minha aplicação ficar rodando em segundo plano e com o icone no tray, pois qdo eu clicar no icone ela voltar para o primeiro plano.

Desde-ja agradeço…
:slight_smile:

Vixiii nao inventa muito…

Pois para isso ja vai ter que programar pela API do windows, e se precisar de muito mais ainda vai ter que optar pro C e inclusive o Assembler velho de guerra.

Java nao e pra isso!

Abraços
:evil:

Este eh um projeto do java.net

https://jdic.dev.java.net/

Exemplo http://javadesktop.org/jdic/demo/TrayIcon/trayicon.jnlp

Falow

O APACHE quando instalado , gera um icon no tray !!!,
O que você pode fazer!!!, NÃO IVENTE A RODA ENTÃO !!!
Como o mesmo já fez o codigo e é OpenSoucer, ele gera o icon monitor, quando instalado
SENDO ASSIM FAÇA da mesma forma !!!
QUANDO VOCÊ INSTALA O JAVA VIRTUAL ELE TAMBÉM LANÇA NO TRY UM ICONE , QUE MONITORIA O UPDATE, ISSO TEM DISPONIVEL NAS FONTES DE VARIOS AMBIENTES QUE FORNECEM TECNOLOGIA OPENSOURCE , VEJA EM SUAS FONTES …

pode partir para o Assembler… mas já digo que vai ser algo para um conhecimento mais aprofundado … tambem nas API do Windows …

“…tudo é possivel…”
Certamento existem recursos e caminhos mais praticos ,nas linguagens e nos Ambientes e ferramentas a se usar…

Uma pequena busca no google resolve todos os seus problemas…
Mas ai vai:
http://download.java.net/jdk6/docs/api/java/awt/TrayIcon.html

Abraco!

o java nao implementou duas classes pra criação de trayicon a partir da versao 1.5 ? ou vai ser a partir da 1.6 ?
algo assim…

Caraca meu…olha o meu avatar aí !!! Agora vou ter que trocar !!!

[quote=coca1na]o java nao implementou duas classes pra criação de trayicon a partir da versao 1.5 ? ou vai ser a partir da 1.6 ?
algo assim…[/quote]

eu tenho a documentação do 5 aqui, e não fala nada, então é partindo do 6 mesmo. então, use a biblioteca que o thiagoalgeri mostrou ali.

Pra falar a verdade, o seu é um pouco maior que o dele (cadê o luca pra reclamar do tamanho do seu avatar???). Mas eu na hora me confundi também hehehe.

flw

[quote=BLACKHAT]O APACHE quando instalado , gera um icon no tray !!!,
O que você pode fazer!!!, NÃO IVENTE A RODA ENTÃO !!!
Como o mesmo já fez o codigo e é OpenSoucer, ele gera o icon monitor, quando instalado
SENDO ASSIM FAÇA da mesma forma !!!
QUANDO VOCÊ INSTALA O JAVA VIRTUAL ELE TAMBÉM LANÇA NO TRY UM ICONE , QUE MONITORIA O UPDATE, ISSO TEM DISPONIVEL NAS FONTES DE VARIOS AMBIENTES QUE FORNECEM TECNOLOGIA OPENSOURCE , VEJA EM SUAS FONTES …

pode partir para o Assembler… mas já digo que vai ser algo para um conhecimento mais aprofundado … tambem nas API do Windows …
[/quote]

a) O tal ícone no tray é uma aplicação em C (que eu tive de reescrever, aliás - o que estava no CVS está totalmente bugada) que só controla o Apache e o Tomcat. Ele não roda nada Java.
b) O tal monitor do Java é outra aplicação em C, que só faz a atualização do plugin. Também não roda nada Java.
c) O recomendado é usar o Java 6.0 (Mustang) que já tem isso pronto.

Mas ele não está na versão beta ainda? Ou já é recomendado usá-lo?

Ah, sobre rodar em segundo plano, ainda não vi mas depois do almoço vou fazer uns testes com a classe Thread por aqui… mas se alguém souber já fala que fiquei curioso também hehehe.

flw

Bom, ele está no build 93, e acho mais estável que o próprio Tiger. Mas tudo depende de seu chefe.

Olá

Tenho usado o Java 6 direto e ele está estável quanto à compatibilidade com Java 5. Quanto as novas facilidades ainda estão ocorrendo mudanças na API de build para build.

Não use versão beta em produção. Coloque esta perfumaria que quer inserir no sistema para ser adicionada depois de outubro/2006 quando o Java 6 será lançado.

[]s
Luca

[quote=dudaskank][quote=coca1na]o java nao implementou duas classes pra criação de trayicon a partir da versao 1.5 ? ou vai ser a partir da 1.6 ?
algo assim…[/quote]

eu tenho a documentação do 5 aqui, e não fala nada, então é partindo do 6 mesmo. então, use a biblioteca que o thiagoalgeri mostrou ali.

Pra falar a verdade, o seu é um pouco maior que o dele (cadê o luca pra reclamar do tamanho do seu avatar???). Mas eu na hora me confundi também hehehe.

flw
[/quote]

O meu avatar tem 113x113 e o limite do forum é de 130x130, então, está dentro das especificações da norma normalizada.

Só tava enchendo o saco, pode ignorar essa parte hehehe…

Mas voltando ao assunto, não tive sucesso trocando a prioridade da Thread, assim:

Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

Lá no gerenciador de tarefas do windows continua como normal.

Quer dizer, se eu entendi o que vc quis dizer com rodar em segundo plano é realmente diminuir a prioridade da thread…

flw

isso vai diminuir a prioridade da thread atual, mas nao necessariamente do processo java (ou javaw) rodando…

Só tava enchendo o saco, pode ignorar essa parte hehehe…

A sim, eu entendi…
Mas como eu não coloquei nenhum sorriso nem um hehehehe no final da frase não significa que eu tenha ficado chateado…
Sem stress…

:smiley:

eu acho que oq ele quis dizer com “rodar em segundo plano” é sumir com a tela e criar o tray icon…
entao com o java 6 da pra fazer… é só dar um hide na tela e continuar fazendo oq tiver de fazer e criar o icone na “bandeja”…
resta saber como andam os bugs do java 6.
:wink:

[quote=thingol][quote=BLACKHAT]O APACHE quando instalado , gera um icon no tray !!!,
O que você pode fazer!!!, NÃO IVENTE A RODA ENTÃO !!!
Como o mesmo já fez o codigo e é OpenSoucer, ele gera o icon monitor, quando instalado
SENDO ASSIM FAÇA da mesma forma !!!
QUANDO VOCÊ INSTALA O JAVA VIRTUAL ELE TAMBÉM LANÇA NO TRY UM ICONE , QUE MONITORIA O UPDATE, ISSO TEM DISPONIVEL NAS FONTES DE VARIOS AMBIENTES QUE FORNECEM TECNOLOGIA OPENSOURCE , VEJA EM SUAS FONTES …

pode partir para o Assembler… mas já digo que vai ser algo para um conhecimento mais aprofundado … tambem nas API do Windows …
[/quote]

a) O tal ícone no tray é uma aplicação em C (que eu tive de reescrever, aliás - o que estava no CVS está totalmente bugada) que só controla o Apache e o Tomcat. Ele não roda nada Java.
b) O tal monitor do Java é outra aplicação em C, que só faz a atualização do plugin. Também não roda nada Java.
c) O recomendado é usar o Java 6.0 (Mustang) que já tem isso pronto.[/quote]

BEM VEJA COMO É EM JAVA, NÃO VI NADA REQUISITANDO C ???[/quote]

final TrayIcon trayIcon;

if (SystemTray.isSupported()) {

SystemTray tray = SystemTray.getSystemTray();
Image image = Toolkit.getDefaultToolkit().getImage("tray.gif");

MouseListener mouseListener = new MouseListener() {
            
    public void mouseClicked(MouseEvent e) {
        System.out.println("Tray Icon - Mouse clicked!");                 
    }

    public void mouseEntered(MouseEvent e) {
        System.out.println("Tray Icon - Mouse entered!");                 
    }

    public void mouseExited(MouseEvent e) {
        System.out.println("Tray Icon - Mouse exited!");                 
    }

    public void mousePressed(MouseEvent e) {
        System.out.println("Tray Icon - Mouse pressed!");                 
    }

    public void mouseReleased(MouseEvent e) {
        System.out.println("Tray Icon - Mouse released!");                 
    }
};

ActionListener exitListener = new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        System.out.println("Exiting...");
        System.exit(0);
    }
};
        
PopupMenu popup = new PopupMenu();
MenuItem defaultItem = new MenuItem("Exit");
defaultItem.addActionListener(exitListener);
popup.add(defaultItem);

trayIcon = new TrayIcon(image, "Tray Demo", popup);

ActionListener actionListener = new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        trayIcon.displayMessage("Action Event", 
            "An Action Event Has Been Peformed!",
            TrayIcon.MessageType.INFO);
    }
};
        
trayIcon.setImageAutoSize(true);
trayIcon.addActionListener(actionListener);
trayIcon.addMouseListener(mouseListener);

try {
    tray.add(trayIcon);
} catch (AWTException e) {
    System.err.println("TrayIcon could not be added.");
}

} else {

//  System Tray is not supported

}

BLACKHAT,

Veja a observação “C” do Thingol, e veja que o exemplo que você postou usa a classe SystemTray, que existe apenas no Java 6.

E não precisa gritar não, rapaz… :wink:

UMA EXPLICAÇÃO MELHOR

VEJA O LINK ABAIXO

http://members.lycos.co.uk/gciubotaru/systray/