Я работаю с Java Swing Application. Я использовал JFrame для окна уведомлений. Когда мое приложение работает в произвольном интервале, некоторое уведомление будет отображаться в правом верхнем углу экрана, но когда появится окно уведомления, отображаемое в это время, я вижу, что информация об уведомлении с заголовок, указанная на моей панели задач. Я хочу предотвратить отображение этой информации на панели задач . Любой мне помогает. Я также пробовал с JWindow но такой же номер есть. Я не хотите использовать в качестве системы Попробуйте на панели задач Скрыть JFrame или JWindow с панели задач
ответ
Вы должны использовать 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, поэтому она не должна создавать какие-либо данные в панели задач или системный трей по умолчанию ,
Приведенный выше код обеспечивает ниже вывод на экран и нет минимизировано информации о панели задач или любой думать в системном трее, как вы можете увидеть:
удачи.
Спасибо за хороший вариант, но этот диалог отображается на панели задач, когда отображается JDialog. Возможно ли, что JDialog отобразится на экране, но нет информации о том, что JDialog отображается на панели задач? –
@Piyush: да возможно. Он работает на моей системе. Используете ли вы какие-либо пользовательские L & F для своего приложения? Я бы предоставил скриншот, показывающий, что диалог не будет отображать информацию на панели задач. Вы запустили мой код или просто изменили JFrame или JWindow на JDialog? – STaefi
Я выполнил ваш код после ответа. Я не использую пользовательские L & F. Я запускаю ваш код на Linux Mint OS. Если вы не возражаете, вы поделитесь своим снимком экрана? –
Попробуйте setType(Type.UTILITY);
Недостатком является для decorated
JFrames
это дает только close
кнопку. Работает лучше для undecorated JFrames
Это работает лучше, чем использование JDialog для неукомплектованных фреймов - кадры скрыты от представления alt-tab, не вызывают проблем с контекстными меню значков в системном трее (да, диалоги делают это), и не пытайтесь получить на фронт (даже с 'setAutoRequestFocus (false)', установленным в диалогах). – Njol
* «Я ** не ** хочу использовать ** Систему Попробовать ** на панели задач ** *** Почему ** нет? ** –
Звучит как вредоносное ПО. – Stefan
Какая версия Windows? 'JWindow' работал мне в прошлом до 7 – MadProgrammer