2012-02-21 3 views
2

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

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

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

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

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

Если я помню правильно сделать крайние окна вы показываете JPanel вместо JFrame. –

+0

@ ThorbjørnRavnAndersen Я отредактировал свое сообщение с моим текущим кодом. – Laszki

+0

Это было бы здорово для шпионских и вредоносных программ! Каков ваш вариант использования приложения. работать на компьютере клиента, если они не знают об этом? –

ответ

5

Мне кажется, я нашел ответ , просто поместите строку 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

+3

+1 для снаряда GT2/4 :-) – mKorbel

+1

Скриншоты показывают законное использование для окон верхнего уровня без записи в панели задач справа. –

+0

@his: Прошу прощения, я не мог понять тебя. –

3

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

4

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

+0

+1 он работает с Windows 7, это дало мне ответ, как сделать виджеты, хехе :-) –

Смежные вопросы