Question

J'essaie de trouver un moyen de rendre une application Java invisible pour l'utilisateur.

En gros, j'essaie simplement de supprimer ceci

task bar icon <- Image

Comment cela peut-il être fait?

public class TransparentWindow extends JFrame {

public TransparentWindow() {
    initComponents();
}

@SuppressWarnings("unchecked")
private void initComponents() {
    setExtendedState(Frame.MAXIMIZED_BOTH);
    setResizable(false);
    setUndecorated(true);
    setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
    setAlwaysOnTop(true);
    System.setProperty("sun.java2d.noddraw", "true");
    WindowUtils.setWindowTransparent(this, true);
    WindowUtils.setWindowAlpha(this, 0.6f);
}

public static void main(String[] args) {
    new TransparentWindow().setVisible(true);
}
}
Était-ce utile?

La solution

Je semble juste avoir trouvé la réponse, il suffit de mettre la ligne setVisible(false); dans les commentaires et vous verrez le programme réel, UNCOMMENT la ligne pour ne voir aucune trace est laissée, pour autant que je puisse voir, que le programme Java est en cours d'exécutionquelque part, jusqu'à ce que vous n'ajoutiez pas l'icône dans votre barre d'état système, manuellement.De plus, comment supprimer votre application du Gestionnaire des tâches, cette question demeure, bien que vous puissiez supprimer ladite icône, comme vous l'avez indiqué dans votre question.

import javax.swing.*;

public class TransparentWindow extends JFrame 
{
    public TransparentWindow() 
    {
        initComponents();
    }

    @SuppressWarnings("unchecked")
    private void initComponents() 
    {
        setExtendedState(JFrame.MAXIMIZED_BOTH);
        setResizable(false);
        setUndecorated(true);
        setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
        setAlwaysOnTop(true);
        setOpacity(0.8f);
        setSize(200, 200);
        //System.setProperty("sun.java2d.noddraw", "true");
        //WindowUtils.setWindowTransparent(this, true);
        //WindowUtils.setWindowAlpha(this, 0.6f);
        setVisible(true);
        setVisible(false);

        JOptionPane.showMessageDialog(this, "It is working!", "Guess : ", JOptionPane.INFORMATION_MESSAGE); 
    }

    public static void main(String[] args) 
    {
        TransparentWindow tw = new TransparentWindow();
    }
}

Voici un aperçu de mon bureau sur l'exécution de ce programme, voir la barre des tâches

APPLICATTION JAVA

Autres conseils

Extension de JWindow insted de JFrame.(Je n'ai pas testé cela sur Windows 7 car je ne suis pas assis devant une boîte Windows pour le moment. Cela a fonctionné pour XP et fonctionne pour Unity, ce qui m'a surpris.)

Pour autant que je sache, il n'y a aucun moyen de supprimer l'icône de la barre des tâches.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top