Сделать приложение Java невидимым для пользователя - PullRequest
2 голосов
/ 21 февраля 2012

Я пытаюсь найти способ сделать Java-приложение невидимым для пользователя.

В основном просто пытаюсь удалить this

task bar icon <- Изображение </p>

Как это можно сделать?

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);
}
}

Ответы [ 3 ]

5 голосов
/ 21 февраля 2012

Я, кажется, только что нашел ответ, просто вставьте строку setVisible(false); в комментарии, и вы увидите реальную программу, ОТКЛЮЧИВАЯ строку, чтобы увидеть, что не осталось никаких следов, насколько я вижу, что Java-программаработает где-то, пока вы не добавите иконку в системный трей вручную.Кроме того, как удалить ваше приложение из диспетчера задач, этот вопрос все еще остается, хотя вы можете удалить упомянутый значок, как указано вами в вашем вопросе.

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();
    }
}

Вот снимок моего рабочего стола при запуске этой программы, см. Панель задач

JAVA APPLICATTION

4 голосов
/ 21 февраля 2012

Расширение от JWindow до JFrame. (Я не проверял это в Windows 7, так как сейчас не сижу перед коробкой Windows. Она работала для XP и работала для Unity, что меня удивило.)

3 голосов
/ 21 февраля 2012

Насколько я знаю, нет способа удалить значок панели задач.

...