Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Как добавить пункт в системное меню фрейма?


Автор: Reunion 14.9.2010, 12:12
Помогите плиз с проблемой!

Нужно добавить пункт в системное меню фрейма. Нашел несколько решений, но ни одного на джаве. Кто-нибудь знает, как можно это сделать с помощью джавы?

Автор: Skipy 14.9.2010, 12:45
Имеется в виду меню, открываемое по иконке в верхнем левом углу? Насколько мне известно - никак. 

Автор: Reunion 14.9.2010, 12:48
Да! Имеется ввиду именно это меню.

Просто несколько удивительно, что на джаве нет решений, т.к. другие языки позволяют это сделать.

Автор: jk1 14.9.2010, 15:15
Цитата

Просто несколько удивительно, что на джаве нет решений, т.к. другие языки позволяют это сделать. 


Просто удивительно, что отверткой нельзя забить гвоздь, т. к. другие инструменты (молоток, плоскогубцы) позволяют это сделать.

А разгадка проста: Swing изначально был заточен под кроссплатформенность. На других ОС этого меню в верхнем левом углу нет, нет и API для доступа к нему.
Я не спорю, что временами отсутствие доступа к подобным нативным вещам мешает, зато Java выигрывает во многом другом.

Ну и в качестве P.S.: "другие языки" позволяют перенести скомпилированные под Windows бинарники под Linux, Mac и т.д. и запустить?

Автор: Reunion 14.9.2010, 16:21
Спасибо!

Есть задача написать swing-приложение в котором есть пункт About в системном меню. Есть ли способы решить этот вопрос? Просто заказчику очень хочется этот пункт видеть именно в системном меню, хотя бы в Windows.

Автор: Connie 15.9.2010, 07:31
Цитата
Просто заказчику очень хочется этот пункт видеть именно в системном меню
А если ему там сильно захочется видеть свое фото и тетрис?

Программа на java компилируется не под видновс, а под определенную java машину (это с некоторой натяжкой я пишу, имея ввиду версии 1,4 1,5 1,6 и т.д.) И вот если java машина не поддерживает этой возможности, как например не было поддержки трея в версии 1,5, то и использовать это нет никакой возможности.

Автор: jk1 15.9.2010, 09:54
Цитата

java машина не поддерживает этой возможности, как например не было поддержки трея в версии 1,5, то и использовать это нет никакой возможности. 


Теоретически есть возможность посмотреть в сторону JNI/JNA, то есть осуществлять нативные вызовы из Java. Но, честно говоря, я бы не рекомендовал: никаких гарантий что Вы сможете сделать именно то, что вам нужно и времени на эксперименты уйдет немало.

Автор: Reunion 15.9.2010, 12:15
Всем спасибо за ответы!

Дам заказчику ссылку на этот форум!))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)