উত্তর:
জাভা-গনোম (একটি জাভা জিটিকে র্যাপার) নামে একটি লাইব্রেরি রয়েছে যা আপনার অ্যাপ্লিকেশনগুলিকে সমস্ত দেশীয় অ্যাপ্লিকেশনগুলির মতো আচরণ করতে দেয়। এটি তাদের সমস্ত গৌরব সরবরাহ করে: দেশী উইজেটস, গ্লোবাল মেনু ইত্যাদি
উবুন্টু সংগ্রহস্থলে লাইব্রেরিটি পাওয়া যায়:
লাইব্রেরির লক্ষ্য হ'ল একটি সমৃদ্ধ জাভা + জিনোম অভিজ্ঞতা বিকাশ করা। সাবধান, আপনি যদি এই লাইব্রেরিটি ব্যবহার করেন তবে আপনার অ্যাপ্লিকেশনটি জাভাটির বহুমুখী বৈশিষ্ট্যটি হারাবে (যেহেতু এটি জাভা-জিনোমে আবদ্ধ হবে)।
এখানে একটি নমুনা অ্যাপ্লিকেশন (যা জাভা-জিনোম সহ আসে) মেনু ইন্টিগ্রেশন প্রদর্শন করছে:
আয়াতানা চেষ্টা করে দেখুন। আপনি এখানে নির্দেশাবলী পেতে পারেন: http://hanynowsky.wordpress.com/2012/05/12/integration-of-java-swing-applications-with-unity-global-menu-in-ubuntu-12-04/
আপনাকে যা করতে হবে তা হ'ল জাভা আয়াতানা লাইব্রেরি আমদানি করা এবং এটি আপনার প্রধান জেফ্রেম শ্রেণিতে কল করা। এটি প্রকৃতপক্ষে আপনার কোডে নিম্নলিখিত দু'টি লাইনের সংযোজনকে বোঝায় (পাশাপাশি আয়াতানা ক্লাস আমদানি করে):
if (AyatanaDesktop.isSupported())
ApplicationMenu.tryInstall(mainFrame);
এখানে একটি উদাহরণ:
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import org.java.ayatana.ApplicationMenu;
import org.java.ayatana.AyatanaDesktop;
public class MyAppWithUnityMenu {
public MyAppWithUnityMenu () {
JFrame mainFrame = new JFrame("This app integrates in Unity menu bar");
// set up mainFrame, by adding components, etc.
JPanel panel = new JPanel();
panel.add(new JLabel("This is a sample application for testing menu integration in Unity. Enjoy!"));
mainFrame.getContentPane().add(panel);
mainFrame.addWindowListener ( new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// set up the menu bar, by adding menus, etc.
JMenuBar menuBar = new JMenuBar();
JMenu file = new JMenu("File");
file.add(new JMenuItem("Open"));
file.add(new JMenuItem("Save"));
file.add(new JMenuItem("Close"));
JMenu edit = new JMenu("Edit");
edit.add(new JMenuItem("Copy"));
edit.add(new JMenuItem("Cut"));
edit.add(new JMenuItem("Paste"));
JMenu help = new JMenu("Help");
help.add(new JMenuItem("Help topics"));
help.add(new JMenuItem("About"));
menuBar.add(file);
menuBar.add(edit);
menuBar.add(help);
menuBar.setVisible(true);
mainFrame.setJMenuBar(menuBar);
mainFrame.pack();
mainFrame.setVisible(true);
// Java Ayatana Call
if (AyatanaDesktop.isSupported()) {
ApplicationMenu.tryInstall(mainFrame);
}
}
public static void main(String[] args) {
new MyAppWithUnityMenu();
}
}
এবং সবচেয়ে গুরুত্বপূর্ণ বিষয়টি হল আপনার অ্যাপ্লিকেশনটি এখনও ক্রস প্ল্যাটফর্ম। আমি উবুন্টু 12.04 এলটিএস এবং উইন্ডোজ এক্সপি উভয় ক্ষেত্রে উপরের উদাহরণটি পরীক্ষা করেছি।
আপনি পিপিএ: পিপিএ: ডানজারেড / জয়তানা ব্যবহার করতে পারেন
http://www.webupd8.org/2014/02/get-unity-global-menu-hud-support-for.html
এটি সাধারণত টুলকিট স্তরে সম্পন্ন হয়, উদাহরণস্বরূপ জিটিকে বা কিউটিতে। সুতরাং এটি করার উদ্দেশ্যেযুক্ত উপায়টি হ'ল প্যাচ করা, যদি এটি আপনি ব্যবহার করছেন এমন জিইউআই টুলকিট হয়। যাইহোক, সমস্ত ইউনিটির উপাদানগুলি ডিবিস ব্যবহার করে যোগাযোগ করে, তাই আপনি যদি সত্যিই চাইতেন তবে আপনি নিজে ডিবিস এপিআই প্রয়োগ করে এটি নিজেই করতে পারতেন। আপনি যদি এটি করতে চান, আপনি লিবিডবসেমেনুটি দেখতে এবং এটি কীভাবে কাজ করে তা দেখতে চাইতে পারেন।
আপনার জন্য কোনও স্থিরতা নয়, তবে এফওয়াইআই: আমি সুইং মেনুগুলি (আধা-) স্বয়ংক্রিয়ভাবে বৈশ্বিক মেনুতে সংহত না করা হয়েছে তা জানতে ট্র্যাক করতে আমি উবুন্টু বাগ # 984916 দায়ের করেছি ।