जावा मेंकार्य ट्रे(सिस्टम ट्रेआइकनप्रदर्शन/चमक
जावा मेंकार्य ट्रे(सिस्टम ट्रेयह अनुभाग ) आइकन को प्रदर्शित करने और झपकाने के लिए एक यूटिलिटी क्लास का परिचय देता है।
जावा SE 6 मस्टैंग में यूटिलिटी क्लास को एक नई सुविधा के रूप में जोड़ा गया था। जावा.awt.सिस्टमट्रे 、java.awt.TrayIcon हम एक क्लास का उपयोग करेंगे। आपको इसे समझने में मदद करने के लिए एक नमूना एप्लिकेशन भी प्रदान किया जाएगा।
सिस्टम ट्रे (टास्क ट्रे) फ़ंक्शन
सिस्टम ट्रे (टास्क ट्रे) कंप्यूटर स्क्रीन के निचले दाएं कोने में पंक्तिबद्ध छोटे आइकनों को संदर्भित करता है। जावा SE 6 ने सिस्टम ट्रे की कार्यक्षमता को सक्षम करने के लिए निम्नलिखित क्लास जोड़े।
- जावा.awt.सिस्टमट्रे
SystemTray क्लास डेस्कटॉप पर मौजूद सिस्टम ट्रे को दर्शाती है। - java.awt.TrayIcon
TrayIcon ऑब्जेक्ट एक ट्रे आइकन को दर्शाता है जिसे सिस्टम ट्रे में जोड़ा जा सकता है।
ब्लिंकिंग आइकन कैसे बनाएं
आप निम्नलिखित वेबसाइट का उपयोग करके एक ब्लिंकिंग आइकन बना सकते हैं।
एक ब्लिंकिंग आइकन बनाने के लिए एक स्थानीय आइकन अपलोड करें।
https://www.bannerkoubou.com/anime/
नमूना आवेदन

नमूना एप्लिकेशन निम्नलिखित कार्यों को लागू करने के लिए सिस्टम ट्रे यूटिलिटी क्लास TaskTrayUtil का उपयोग करता है।
- जब आप इसे चालू करते हैंकार्य ट्रेにआइकनप्रदर्शन।
- [चमकते हुए बटन] पर क्लिक करने सेकार्य ट्रेआइकन को झिलमिलाएं।
एक गुब्बारे पर "मुझे यहाँ से बाहर निकालो!!" संदेश भी प्रदर्शित किया गया था। - [Disable बटन] पर क्लिक करने से आइकन का चमकना बंद हो जाएगा।
- कार्य ट्रेमुख्य विंडो को डेस्कटॉप पर लाने के लिए आइकन पर बाईं ओर एक बार क्लिक करें।
- कार्य ट्रेडिफ़ॉल्ट पॉपअप मेनू प्रदर्शित करने के लिए आइकन पर राइट-क्लिक करें।
- जब मुख्य विंडो को छोटा किया जाता हैकार्य ट्रेइसमें संग्रहित।
स्रोत कोड अधिग्रहण
स्रोत कोड निम्न स्थान से प्राप्त किया जा सकता है। यदि आप इसे कंपाइल करना चाहते हैं, तो कृपया निम्न आइकन को भी स्रोत कोड के साथ उसी स्थान पर सहेजें।
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
/**
* जावा का उपयोग करके टास्क ट्रे (सिस्टम ट्रे) आइकन को प्रदर्शित करें और उसे ब्लिंक करें।
*
* ◆ इस कक्षा का संक्षिप्त विवरण
* TaskTray क्लास टास्क ट्रे को संभालने के लिए एक यूटिलिटी है।
* निम्नलिखित सुविधाएं प्रदान की जाती हैं:
* टास्क ट्रे में एक आइकन प्रदर्शित करें।
* टास्क ट्रे में एक पॉप-अप संदेश दिखाई देगा।
* टास्क ट्रे को ब्लिंक कराएं।
*
* ◆ उपयोग कैसे करें
* लक्ष्य JFrame क्लास को निम्नलिखित विधि में एक तर्क के रूप में पास करें।
* ・createTray(JFrame targetFrame)
* ・createTray(final JFrame targetFrame, Image image, PopupMenu menu)
*
*/
सार्वजनिक वर्ग TaskTrayUtil {
प्राइवेट स्टेटिक जेफ्रेम फ्रेम;
निजी स्थैतिक पॉपअप मेनू डिफ़ॉल्ट मेनू;
निजी स्थैतिक ट्रेआइकॉन ट्रेआइकॉन;
निजी स्थैतिक सिस्टमट्रे ट्रे = सिस्टमट्रे.गेटसिस्टमट्रे();
private static Object INSTANCE_LOCK = new Object();
/**
* निष्पादन उदाहरण
* @param args
*/
सार्वजनिक स्थैतिक शून्य main (String [] args) {
कोशिश {
// लुकएंडफील को विंडोज़ पर सेट करें
यूआईमैनेजर.सेटलुकएंडफील(
UIManager.getSystemLookAndFeelClassName());
// मानक आइकन
final Image img = new ImageIcon(
TaskTrayUtil.class.getResource(
“tray_icon.gif”)).getImage();
अंतिम JFrame फ्रेम =
new JFrame("टास्क ट्रे में आइकन प्रदर्शित करें और ब्लिंक करें");
फ्रेम.सेटसाइज़(300, 100);
फ्रेम.सेटआइकॉनइमेज(इमेज);
विंडो को मिनिमाइज करने पर उसे टास्क ट्रे में मिनिमाइज कर दें।
// दिखाए गए अनुसार WindowListener क्लास जोड़ें।
फ्रेम.ऐडविंडोलिसनर(नया विंडोएडेप्टर() {
पब्लिक वॉइड विंडोआइकॉनिफाइड(विंडोइवेंट ई) {
फ्रेम.सेटविजिबल(फॉल्स);
}
});
JPanel jPanel = new JPanel();
jPanel.setLayout(new FlowLayout());
jPanel.setSize(new Dimension(219, 70));
// टिमटिमाते आइकन
अंतिम छवि imgLight =
नया ImageIcon(TaskTrayUtil.class.getResource(
“tray_icon_light.gif”)).getImage();
JButton lightButton = new JButton(“点滅”);
lightButton.addActionListener(new ActionListener(){
पब्लिक वॉइड एक्शनपरफॉर्म्ड(एक्शनइवेंट ई) {
onAndOffLight(imgLight, null);
displayMessage("संदेश", "मुझे यहाँ से बाहर निकालो!!");
}
});
JButton cancelButton = new JButton(“解除”);
cancelButton.addActionListener(new ActionListener(){
पब्लिक वॉइड एक्शनपरफॉर्म्ड(एक्शनइवेंट ई) {
replaceImageWithDelete(img);
}
});
jPanel.add(lightButton, null);
jPanel.add(cancelButton, null);
फ्रेम.जोड़ें(jPanel);
// चक्र के अंत की प्रक्रिया।
फ्रेम.सेटडिफ़ॉल्टक्लोज़ऑपरेशन(जेफ़्रेम.EXIT_ON_CLOSE);
फ्रेम को स्क्रीन के केंद्र में प्रदर्शित करें।
फ्रेम.सेटलोकेशनरिलेटिवटू(नल);
// एक टास्क ट्रे बनाएं।
TaskTrayUtil.createTray(frame);
फ्रेम.सेटविजिबल(ट्रू);
} कैच (अपवाद ई) {
e.printStackTrace();
}
}
/**
*
*/
स्थिर {
क्रिएटपॉपअपमेनू();
}
/**
* टास्क ट्रे में प्रदर्शित होने वाला डिफ़ॉल्ट PopupMenu मेनू जेनरेट करता है।
निम्नलिखित मेनू आइटम उपलब्ध हैं।
* टास्कबार से हटाएं
* लक्षित एप्लिकेशन को टास्कबार से हटाकर डेस्कटॉप पर ले आएं।
* इसे बाहर ले जाओ।
* (विंडो को सक्रिय करता है और उसे सामने लाता है।)
* इससे आवेदन बंद करने की प्रक्रिया समाप्त हो जाएगी।
*/
निजी स्थैतिक शून्य createPopupMenu() {
MenuItem getTrayItem = new MenuItem(“タスクトレイから取り出す”);
getTrayItem.addActionListener(new ActionListener() {
पब्लिक वॉइड एक्शनपरफॉर्म्ड(एक्शनइवेंट ई) {
सक्रिय();
}
});
MenuItem exitItem = new MenuItem(“終了”);
exitItem.addActionListener(new ActionListener() {
पब्लिक वॉइड एक्शनपरफॉर्म्ड(एक्शनइवेंट ई) {
ट्रे आइकन हटाएं();
TaskTrayUtil.frame.setVisible(false);
TaskTrayUtil.frame.dispose();
सिस्टम.एग्जिट(0);
}
});
defaultMenu = new PopupMenu();
डिफ़ॉल्ट मेनू.add(getTrayItem);
डिफ़ॉल्ट मेनू.add(exitItem);
}
/**
* एक ट्रे आइकन बनाएं और उसे सिस्टम ट्रे में जोड़ें।
* आइकन पर घटित होने वाली घटनाओं के लिए श्रोताओं को targetFrame पर सेट किया गया है।
करने के लिए सेट *।
* यह घटना तब घटित होती है जब ट्रे आइकन पर डबल-क्लिक किया जाता है।
* लक्षित एप्लिकेशन को पुनः प्राप्त करता है।
* @param targetFrame लक्षित एप्लिकेशन
*/
पब्लिक स्टैटिक वॉइड क्रिएट ट्रे (जेफ्रेम टारगेटफ्रेम) {
createTray(targetFrame, null, null);
}
/**
* एक ट्रे आइकन बनाएं और उसे सिस्टम ट्रे में जोड़ें।
*
* @param targetFrame लक्षित एप्लिकेशन
* @param image ट्रे आइकन के रूप में प्रदर्शित करने के लिए छवि।
* यदि यह null है, तो इसे getIconImage() का उपयोग करके targetFrame से प्राप्त किया जा सकता है।
* यह चित्र केवल उदाहरण के तौर पर इस्तेमाल किया जाएगा।
* @param menu टास्क ट्रे में प्रदर्शित होने वाला पॉपअप मेनू।
* यदि null है, तो डिफ़ॉल्ट PopupMenu प्रदर्शित होगा।
*/
पब्लिक स्टैटिक वॉइड क्रिएट ट्रे (फाइनल जेफ्रेम टारगेटफ्रेम, इमेज इमेज,
पॉपअप मेनू मेनू) {
// यदि सिस्टम ट्रे समर्थित नहीं है तो बाहर निकलें।
यदि (!सिस्टमट्रे समर्थित नहीं है()) {
वापस करना;
}
TaskTrayUtil.frame = targetFrame;
यदि (छवि == शून्य) {
छवि = लक्ष्यफ्रेम.getIconImage();
}
यदि (मेनू == null) {
मेनू = डिफ़ॉल्ट मेनू;
}
trayIcon = new TrayIcon(image, targetFrame.getTitle(), menu);
ट्रेआइकॉन.सेटइमेजऑटोसाइज़(ट्रू);
trayIcon.addMouseListener(new MouseAdapter(){
पब्लिक वॉइड माउसक्लिकेड(माउसइवेंट ई) {
यदि (SwingUtilities.isLeftMouseButton(e)) {
सक्रिय();
}
}
});
कोशिश {
ट्रे.ऐड(ट्रेआइकॉन);
कैच (AWTException e1) {
e1.printStackTrace();
}
}
/**
* टास्कबार से आइकन हटा दें।
* एप्लिकेशन बंद होने पर इसे कॉल किया जाना चाहिए।
*/
पब्लिक स्टैटिक वॉइड रिमूवट्रेआइकॉन() {
ट्रे.रिमूव(ट्रेआइकॉन);
}
/**
* टास्कबार में मौजूद आइकन को ब्लिंक कराएं।
* @param msg यदि आवश्यक हो, तो ब्लिंकिंग आइकन पर क्लिक करने पर
* प्रदर्शित किए जाने वाले संदेश को सेट करें।
*/
पब्लिक स्टैटिक वॉइड ऑनएंडऑफलाइट(इमेज लाइटइमेज, स्ट्रिंग एमएसजी) {
छवि बदलें (प्रकाश छवि);
ChangeLightImgAdapter adap =
नया TaskTrayUtil().नया ChangeLightImgAdapter(msg);
ट्रेआइकॉन.ऐडमाउसलिसनर(एडैप्ट);
फ्रेम.ऐडविंडोलिसनर(एडैप्ट);
}
/**
* टास्कबार में आइकन बदलें।
* @param image आइकन को केवल तभी बदलें जब वह वर्तमान आइकन से अलग हो।
*/
पब्लिक स्टैटिक वॉइड रिप्लेसइमेज(इमेज इमेज) {
सिंक्रनाइज़्ड (इंस्टेंस_लॉक) {
यदि (!image.equals(trayIcon.getImage())) {
ट्रेआइकॉन.सेटइमेज(इमेज);
}
}
}
/**
* टास्कबार में आइकन बदलें।
* यदि किसी कारणवश आइकन झपक रहा है,
ऐसा प्रतीत होता है कि इसे {@link SystemTray#remove(TrayIcon)} का उपयोग करके हटाया जाना चाहिए।
* @param image आइकन को केवल तभी बदलें जब वह वर्तमान आइकन से अलग हो।
*/
पब्लिक स्टैटिक वॉइड रिप्लेसइमेजविदडिलीट(इमेज इमेज) {
सिंक्रनाइज़्ड (इंस्टेंस_लॉक) {
यदि (!image.equals(trayIcon.getImage())) {
ट्रे.रिमूव(ट्रेआइकॉन);
ट्रेआइकॉन.सेटइमेज(इमेज);
कोशिश {
ट्रे.ऐड(ट्रेआइकॉन);
} कैच (अपवाद ई) {
e.printStackTrace();
}
}
}
}
/**
* टास्कबार में एक पॉप-अप संदेश दिखाई देगा।
* @param कैप्शन
* @param पाठ
*/
पब्लिक स्टैटिक वॉइड डिस्प्लेमैसेज(स्ट्रिंग कैप्शन, स्ट्रिंग टेक्स्ट) {
if (caption != null || text != null) {
ट्रेआइकॉन.डिस्प्लेमैसेज(कैप्शन, टेक्स्ट,
ट्रेआइकॉन.मैसेजटाइप.इन्फो);
}
}
/**
* लक्षित एप्लिकेशन को टास्कबार से हटाकर डेस्कटॉप पर ले आएं।
* इसे बाहर ले जाओ।
*/
निजी स्थैतिक शून्य सक्रिय() {
// फ्रेम की स्थिति को सामान्य स्थिति में पुनर्स्थापित करता है।
टास्कट्रेयूटिल.फ्रेम.सेटएक्सटेंडेडस्टेट(जेफ्रेम.नॉर्मल);
TaskTrayUtil.frame.setAlwaysOnTop(true);
TaskTrayUtil.frame.setVisible(true);
TaskTrayUtil.frame.setAlwaysOnTop(false);
}
/**
* ब्लिंकिंग आइकन पर क्लिक करने पर ट्रिगर होने वाली घटना।
* श्रोता वर्ग।
*/
क्लास ChangeLightImgAdapter विंडो लिस्टनर, माउस लिस्टनर को लागू करता है {
स्ट्रिंग लाइटइमेजटेक्स्ट;
पब्लिक चेंजलाइटइमेजएडैप्टर(स्ट्रिंग लाइटइमेजटेक्स्ट) {
this.lightImageText = lightImageText;
}
/**
* जब टास्क ट्रे आइकन पर क्लिक किया जाता है
* एक पॉप-अप संदेश प्रदर्शित करता है।
*/
पब्लिक वॉइड माउसप्रेस्ड(माउसइवेंट ई) {
TaskTrayUtil.displayMessage(null, lightImageText);
}
/**
* लक्षित एप्लिकेशन के सक्रिय होने पर लाइट झपकने लगी।
* आइकन को पुनर्स्थापित करें।
*/
पब्लिक वॉइड विंडो एक्टिवेटेड (विंडो इवेंट ई) {
TaskTrayUtil.replaceImageWithDelete(TaskTrayUtil.frame
.getIconImage());
TaskTrayUtil.frame.removeWindowListener(this);
TaskTrayUtil.trayIcon.removeMouseListener(this);
}
पब्लिक वॉइड विंडोक्लोज्ड(विंडोइवेंट ई) {}
पब्लिक वॉइड विंडो क्लोजिंग (विंडो इवेंट ई) {}
पब्लिक वॉइड विंडो डिएक्टिवेटेड (विंडो इवेंट ई) {}
सार्वजनिक शून्य विंडोडिकॉनिफाइड(विंडोइवेंट ई) {}
सार्वजनिक शून्य विंडो आइकनिफाइड (विंडो इवेंट ई) {}
पब्लिक वॉइड विंडोओपन्ड(विंडोइवेंट ई) {}
पब्लिक वॉइड माउसक्लिकेड(माउसइवेंट ई) {}
सार्वजनिक शून्य माउसएंटर्ड(माउसइवेंट ई) {}
पब्लिक वॉइड माउसएग्जिटेड(माउसइवेंट ई) {}
पब्लिक वॉइड माउस रिलीज्ड(माउस इवेंट ई) {}
}
}
