Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не сворачивается в трей при полноэкранном режи-е 
V
    Опции темы
freshAngel
  Дата 21.7.2009, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Изучаю работу с треем.
Повесил слушатель на JFrame который скрывает окно и создает иконку в трее при сворачивании окна:
Код


frame.addWindowStateListener(new WindowStateListener()
    {
      public void windowStateChanged(WindowEvent e)
      {
        if(e.getNewState() == JFrame.ICONIFIED)
        {
          frame.setVisible(false);
      try
    {
      systemTray.add(trayIcon);
      trayIcon.displayMessage("Tray test", "Window minimised to tray, double click to show", TrayIcon.MessageType.INFO);
    }
    catch(AWTException ex)
    {
      ex.printStackTrace();
    }
        }
      }
    });


Первоначально у фрейма выставил размер:
frame.setSize(100,200);

Все работает!
А вот если развернуть фрейм на весь экран (полноэкранный JFrame), а потом свернуть окно, то почему - то слушатель не реагирует.
В чем может быть причина!?

И еще вопрос по ходу дела...


С этим вопросом разобрался! Работает!  smile 

Код

Image IconImage = Toolkit.getDefaultToolkit().createImage("I:\\Patterns\\pp.gif");
TrayIcon trayIcon = new TrayIcon(IconImage, "Test");


Если я хочу сменить изображение для иконки в трее как это сделать!?
Пробовал, что - то типа: IconImage.setImage() не работает...

Это сообщение отредактировал(а) freshAngel - 21.7.2009, 18:46
PM MAIL   Вверх
Connie
Дата 21.7.2009, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 12.8.2008

Репутация: 8
Всего: 9



freshAngel, вот тут было бы неплохо проверять существует ли трей
Код

SystemTray.isSupported()
Не везде он существует smile

Ссылку на trayIcon не теряйте, тогда потом, при необходимости можно сделать так:
Код

trayIcon.setImage(someImage);


Либо можно получить все "иконки" из системного трея и найдя свою, менять у нее картинку
Код

TrayIcon[] arr = tray.getTrayIcons();
arr[someValue].setImage(...);



P.S. А вот интересно, можно менять картинку, да и вообще опереровать с чужими иконками в трее? Я не пробовал smile 
PM MAIL WWW   Вверх
freshAngel
  Дата 21.7.2009, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Уважаемый Connie, что значит трей не везде существует!?
Он же всегда один для всех приложений!?
PM MAIL   Вверх
freshAngel
  Дата 21.7.2009, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Попробовал с помощью адаптера:
Код

frame.addWindowListener(new WindowAdapter() {
@Override
public void windowIconified(WindowEvent e) {
frame.setVisible(false);
try
{
systemTray.add(trayIcon);
trayIcon.displayMessage("Tray test", "Window minimised to tray, double click to show", TrayIcon.MessageType.INFO);
}
catch(AWTException ex)
{
ex.printStackTrace();
}

}
});



Все заработало!
Только непонятно почему первый вариант не работает как нужно!?
При полноэкранном JFrame

Это сообщение отредактировал(а) freshAngel - 21.7.2009, 21:44
PM MAIL   Вверх
serger
Дата 23.7.2009, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 19.6.2007
Где: Ижевск

Репутация: нет
Всего: 5



Цитата(freshAngel @  21.7.2009,  20:53 Найти цитируемый пост)
Уважаемый Connie, что значит трей не везде существует!?


Не во всех ОС, например.


--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
freshAngel
  Дата 26.7.2009, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Ясно. Спасибо всем за советы и помощь!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0906 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.