2010-09-01 16 views
5

मैं विंडोज एक्सपी पर एक्लिप्स में स्विंग-आधारित जावा एप्लिकेशन विकसित कर रहा हूं। मेरे पास दोहरी मॉनीटर सेटअप है।ग्रहण के लिए प्रयुक्त डिस्प्ले डिस्प्ले

मैं एक अलग मॉनिटर पर प्रोग्राम लॉन्च करना चाहता हूं, जिसमें से मैं ग्रहण कर रहा हूं। मैं ऐसा करने के लिए अपना डीबग कॉन्फ़िगरेशन कैसे स्थापित कर सकता हूं?

+0

आप किस ओएस का उपयोग कर रहे हैं? – Gadolin

+0

मैं WinXP का उपयोग कर रहा हूं। –

उत्तर

2

जब कोई नया फ्रेम खोला जाता है, तो यह 0,0 को निर्देशित करने के लिए डिफ़ॉल्ट होता है। वास्तव में यह आपके ऑपरेटिंग सिस्टम के मॉनीटर लेआउट पर निर्भर करता है। आम तौर पर, 0,0 प्राथमिक मॉनिटर के ऊपरी-बाएं कोने होंगे।

आपकी समस्या का समाधान ग्रहण को आपके द्वितीयक मॉनिटर पर चलाने के लिए है, ताकि अनुप्रयोग अन्य (प्राथमिक) मॉनीटर पर खुल जाए। आपको वास्तव में ऐसा करने के लिए ग्रहण को स्थानांतरित नहीं करना है। अपने ऑपरेटिंग सिस्टम की मॉनीटर सेटिंग्स में जाएं और प्राथमिक मॉनिटर को मॉनिटर पर स्विच करें जिसे आप एप्लिकेशन शुरू करना चाहते हैं। ग्रहण अब द्वितीयक मॉनीटर पर चल रहा है।

आपका नया फ्रेम अब अन्य मॉनिटर पर खोला जाएगा, और आपने प्रक्रिया में कोई कोड नहीं बदला है, बस आपके ऑपरेटिंग सिस्टम की कॉन्फ़िगरेशन सेटिंग्स।

+0

धन्यवाद, यह चाल चल रहा है! –

0

मुझे लगता है कि आप ऐसा नहीं कर सकते हैं। मुझे मिला एकमात्र समाधान प्रोग्राम को दूसरे डिस्प्ले को मैन्युअल रूप से दूसरे स्थान पर ले जाना है और फिर इसे इस स्थिति में बंद करें (बंद बटन के साथ और कंसोल लाल बटन को समाप्त नहीं करता है जो बिना किसी बचत के वीएम को क्रूरता से रोकता है)। फिर अगले पुनरारंभ पर, आपका प्रोग्राम लॉन्च दूसरे डिस्प्ले पर दिखाना चाहिए। इस समाधान को काम करने के लिए, प्रोग्राम लॉन्च करने के लिए आपके लॉन्च कॉन्फ़िगरेशन को वर्कस्पेस और प्रत्येक लॉन्च पर कॉन्फ़िगरेशन को साफ़ नहीं करना चाहिए।

आरसीपी ऐप पर संबंधित सामग्री के लिए RCP opening monitor देखें।

+1

यह एक आरसीपी ऐप के लिए काम करेगा, लेकिन एक स्विंग ऐप के लिए नहीं। – zvikico

+0

ओप्प्प्सस zvikico सही है, मेरा जवाब एक आरसीपी ऐप के लिए ठीक है लेकिन एक स्विंग नहीं है। मुझे सवाल ठीक से नहीं मिला, क्षमा करें। –

0

आप शायद उस व्यवहार को प्रोग्रामेटिक रूप से प्राप्त कर सकते हैं। मुझे यकीन है कि आप Google कर सकते हैं और दूसरे मॉनिटर पर अपनी विंडो को खोलने के उदाहरण ढूंढ सकते हैं। यदि ऐसा कुछ है जो आप केवल डीबग-टाइम पर चाहते हैं, तो अपने लॉन्च कॉन्फ़िगरेशन (अधिक विशेष रूप से, एक जेवीएम रनटाइम तर्क) में एक स्विच जोड़ें और जब आपका प्रोग्राम शुरू होता है तो स्विच (System.getProperty) की जांच करें।

+0

मैं ऐसा करने के लिए अपने कोड को संशोधित नहीं करना चाहता हूं, जावा कोड के भीतर प्रोग्राम की डिफ़ॉल्ट विंडो को नियंत्रित करना शायद संभव है, लेकिन यह एक विकल्प नहीं है। मैं ऐसा करने के लिए ग्रहण स्थापित करना चाहता हूं, ताकि मैं कई परियोजनाओं में सेटिंग का पुन: उपयोग कर सकूं। यदि डिफ़ॉल्ट मॉनीटर का चयन करने के लिए JVM रनटाइम तर्क हैं, तो यह ठीक है कि मैं बाद में हूं। आप नहीं जानते कि वे क्या हैं, क्या आप? –

+0

मैं इस तरह के विकल्प से परिचित नहीं हूँ। यह ग्राफिक्स पर्यावरण/ग्राफिक्स कॉन्फ़िगरेशन के कार्यान्वयन पर निर्भर करता है। आप एक पुन: प्रयोज्य घटक लिख सकते हैं और अपनी परियोजनाओं में इसका इस्तेमाल कर सकते हैं। यह आपके उत्पादन कोड को प्रभावित नहीं करेगा। – zvikico

2

यह थोड़ा सा निर्भर करता है कि आपने अपना दूसरा मॉनीटर कैसे स्थापित किया। मेरे उत्तर के लिए, मुझे लगता है कि आपने इसे अपने डेस्कटॉप पर "एक्सटेंशन" के रूप में जोड़ा है (ताकि आप माउस के साथ खींचकर उनके बीच विंडो को स्थानांतरित कर सकें)।

इस मोड में, आपका डेस्कटॉप बड़ा हो जाता है। इसे देखने के लिए, GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds पर कॉल करें।

चौड़ाई आपके दो मॉनीटर की चौड़ाई का योग होना चाहिए और ऊंचाई दो ऊंचाइयों का बड़ा होना चाहिए।

ध्यान दें कि एक्स समन्वय < 0 हो सकता है (ऐसा तब होता है जब आप सही मॉनीटर को सही मॉनिटर करते हैं)।

अपनी विंडो को अन्य मॉनीटर पर ले जाने के लिए, बस एक उपयुक्त मान के साथ एक स्थिति (setPosition()) का उपयोग करें और उस स्थिति को प्रोग्राम के विकल्प के रूप में पास करें। या वर्तमान स्थिति को वरीयता नोड के रूप में सहेजें और ऐप फिर से चलाए जाने पर उसी स्थान पर विंडो को फिर से खोलें।

यदि आपके मॉनीटर स्वतंत्र रूप से कॉन्फ़िगर किए गए हैं, तो आपको GraphicsEnvironment.getScreenDevices() API में देखना चाहिए।

संबंधित मुद्दे