प्रदर्शन आकार की गणना करने के लिए, आप उपयोग कर सकते हैं (GraphicsConfiguration जावाडोक से लिया)
Rectangle virtualBounds = new Rectangle();
GraphicsEnvironment ge = GraphicsEnvironment.
getLocalGraphicsEnvironment();
GraphicsDevice[] gs =
ge.getScreenDevices();
for (int j = 0; j < gs.length; j++) {
GraphicsDevice gd = gs[j];
GraphicsConfiguration[] gc =
gd.getConfigurations();
for (int i=0; i < gc.length; i++) {
virtualBounds =
virtualBounds.union(gc[i].getBounds());
}
}
फिर आप width
और virtualBounds
की height
क्वेरी कर सकते हैं।
यह बहु-मॉनीटर सेटअप में भी काम करेगा।
जहां तक मुझे पता है, परिवर्तनों का पता लगाने के लिए कोई जेडीके समर्थित तरीका नहीं है, इसलिए मतदान केवल एकमात्र शर्त है, या JNA और मूल कोड का उपयोग करें। यदि आपकी शीर्ष-स्तरीय विंडो को अधिकतम किया गया है, तो डिस्प्ले का आकार बदलने से किसी भी अधिकतम विंडो का आकार बदल जाएगा, ताकि आप वहां भी बदलावों को सुन सकें। घटक श्रोताओं को लिखने के उदाहरणों के लिए यह sun tutorial देखें।
यदि आपके पास शीर्ष-स्तरीय अधिकतम विंडो नहीं है, तो आप एक छिपी हुई अधिकतम विंडो बनाकर भी उसी प्रभाव को प्राप्त करने में सक्षम हो सकते हैं। मैं निश्चित रूप से यह नहीं कह सकता कि यह काम करेगा, लेकिन यह कोशिश करने लायक है।
त्वरित उत्तर के लिए धन्यवाद। दुर्भाग्यवश उपरोक्त स्निपेट उबंटू 9.04 पर पुराने आकार (1024x768) को प्रदर्शित करता रहता है। सर्वश्रेष्ठ संबंध, मार्टन –
यह अजीब बात है, क्योंकि संक्षेप में यह स्वीकृत उत्तर के समान एपीआई का उपयोग करता है। – mdma
हां, यह अजीब बात है कि ग्राफिक्स कॉन्फ़िगरेशन .getBounds() अनुचित मूल्य देता है, जबकि GraphicsDevice.getDisplayMode() अच्छा देता है। दूसरी तरफ GraphicsDevice.getDisplayMode() हेवीवेट के लिए प्रतीत होता है, इसलिए इसे हर कुछ सेकंड में प्रदर्शन करना सबसे अच्छा विचार नहीं हो सकता है। मुझे इसके बजाय एक मूल कॉल चुनना पड़ सकता है। –