Добавление вклада в панель задач Windows в java - аналогично виджетам батареи ноутбука

Я пытаюсь внести свой вклад в панель задач Windows, поэтому, когда я сворачиваю свое приложение, оно пристыковывается к панели задач Windows. Лучший способ описать это — посмотреть на нарисованное мной изображение:

альтернативный текст

Если кто-нибудь знает, возможно ли это или как это сделать, пожалуйста, дайте мне знать.

Я хорошо знаю возможность добавить иконку в системный трей - но это немного другое.

Заранее спасибо,

Энди


person RenegadeAndy    schedule 24.06.2010    source источник
comment
Я думаю, вы должны использовать .NET для этого. Java не подходит для конкретных ОС, подобных этой.   -  person Jonas    schedule 24.06.2010
comment
Не особенно заинтересован в этом - если это можно сделать на Java, я хотел бы знать, как!   -  person RenegadeAndy    schedule 24.06.2010


Ответы (4)


Взгляните на СВТ. Это определенно будет решение для конкретной платформы, но я предполагаю, что это не проблема для вас.

SWT (начиная с 3.6, который только что стал золотым) имеет класс TaskBar и соответствующие классы TaskItem для каждого элемента в TaskBar. Я не думаю, что класс TaskItem будет достаточно мощным, чтобы делать то, о чем вы просите, но просмотр исходного кода даст вам представление о вызовах Windows низкого уровня, к которым вы можете получить доступ, чтобы сделать это.

Версия SWT для Windows будет иметь низкоуровневый специфичный для платформы API, который должен привести вас туда, куда вы хотите. По сути, они сделали всю работу JNA/JNI за вас. Я не программист Windows, поэтому я не могу дать вам более подробную информацию, но, надеюсь, это укажет вам правильное направление.

person rancidfishbreath    schedule 25.06.2010

Возможно, вам придется использовать JNI или JNA для достижения этой цели - обертывание собственного API Windows кажется наиболее жизнеспособной идеей. Однако это значительно снизит ценность использования Java - использование JNI/JNA всегда следует рассматривать как последнее средство...

person Bozhidar Batsov    schedule 24.06.2010
comment
У вас есть идея или пример того, как это сделать? - person RenegadeAndy; 24.06.2010
comment
Вам просто нужно найти подходящую нативную библиотеку Windows для вашей задачи и обернуть ее в Java с помощью JNI/JNA. Я сам не пользователь Windows, я понятия не имею, с чего начать... - person Bozhidar Batsov; 24.06.2010

Вам просто нужно использовать функции панели задач, доступные в Ява 6.

Если вы посмотрите на раздел Дополнительная информация на внизу этой страницы есть ссылки на API системного трея и пример проекта.

person Devon_C_Miller    schedule 24.06.2010
comment
RegenadyAndy упоминает в своем вопросе, что он знает об этой способности, но она его не устраивает. Откровенно говоря, функциональность системного трея Java — это кусок дерьма. У меня было много дел с ним, и я просто ненавижу его - будем надеяться, что Java 7 предложит некоторые улучшения в этой области... - person Bozhidar Batsov; 24.06.2010
comment
Он спрашивал о другом - person Xorty; 25.06.2010

Не могли бы вы скрыть свое приложение при сворачивании, а затем добавить значок для него на панель задач, при нажатии на который ваше приложение будет отображаться?

person davetron5000    schedule 26.06.2010