2015-08-06 6 views
-2

Я работаю с Java Swing Application. Я использовал JFrame для окна уведомлений. Когда мое приложение работает в произвольном интервале, некоторое уведомление будет отображаться в правом верхнем углу экрана, но когда появится окно уведомления, отображаемое в это время, я вижу, что информация об уведомлении с заголовок, указанная на моей панели задач. Я хочу предотвратить отображение этой информации на панели задач . Любой мне помогает. Я также пробовал с JWindow но такой же номер есть. Я не хотите использовать в качестве системы Попробуйте на панели задач Скрыть JFrame или JWindow с панели задач

enter image description here

+1

* «Я ** не ** хочу использовать ** Систему Попробовать ** на панели задач ** *** Почему ** нет? ** –

+0

Звучит как вредоносное ПО. – Stefan

+0

Какая версия Windows? 'JWindow' работал мне в прошлом до 7 – MadProgrammer

ответ

0

Вы должны использовать JDialog вместо JFrame или JWindow. Пусть следующий пример поможет вам:

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JDialog; 
import javax.swing.Timer; 

public class Main { 
    public static void main(String[] args) { 
     final JDialog dlg = new JDialog(); 
     dlg.setBounds(100, 100, 200, 100); 
     dlg.setUndecorated(true); 
     dlg.setVisible(!dlg.isVisible()); 

     Timer showTimer = new Timer(3000, new ActionListener() { 
      @Override 
      public void actionPerformed(ActionEvent e) { 
       dlg.setVisible(!dlg.isVisible()); 
      } 
     }); 
     showTimer.start(); 
    } 
} 

[UPDATE] На самом деле JDialog для обеспечения кадр как ребенка для другой JFrame или JWindow, поэтому она не должна создавать какие-либо данные в панели задач или системный трей по умолчанию ,

Приведенный выше код обеспечивает ниже вывод на экран и нет минимизировано информации о панели задач или любой думать в системном трее, как вы можете увидеть:

enter image description here

удачи.

+0

Спасибо за хороший вариант, но этот диалог отображается на панели задач, когда отображается JDialog. Возможно ли, что JDialog отобразится на экране, но нет информации о том, что JDialog отображается на панели задач? –

+0

@Piyush: да возможно. Он работает на моей системе. Используете ли вы какие-либо пользовательские L & F для своего приложения? Я бы предоставил скриншот, показывающий, что диалог не будет отображать информацию на панели задач. Вы запустили мой код или просто изменили JFrame или JWindow на JDialog? – STaefi

+0

Я выполнил ваш код после ответа. Я не использую пользовательские L & F. Я запускаю ваш код на Linux Mint OS. Если вы не возражаете, вы поделитесь своим снимком экрана? –

1

Попробуйте setType(Type.UTILITY);

Недостатком является для decoratedJFrames это дает только close кнопку. Работает лучше для undecorated JFrames

+0

Это работает лучше, чем использование JDialog для неукомплектованных фреймов - кадры скрыты от представления alt-tab, не вызывают проблем с контекстными меню значков в системном трее (да, диалоги делают это), и не пытайтесь получить на фронт (даже с 'setAutoRequestFocus (false)', установленным в диалогах). – Njol