2011-07-28 27 views
29

पर जावाएफएक्स स्टेज/फ़्रेम कैसे सेट करें मैं जावाएफएक्स 2 का उपयोग कर रहा हूं। मैं चाहता हूं कि मेरा फ्रेम अधिकतम हो, लेकिन मुझे कोई रास्ता नहीं दिख रहा है। मैंने सफलता के बिना इंटरनेट पर थोड़ी सी खोज की। मंच के लिए मैं setFullScreen() और setIconified() देखता हूं लेकिन मुझे setMaximized() जैसी कुछ भी दिखाई नहीं दे रही है।मैक्सिमाइज्ड

उत्तर

28

जब Ensemble.jar की sourcecode JavaFX 2.0 एसडीके के नमूने के साथ प्रदान की मूल्यांकन, खिड़की अधिकतम प्राप्त करने के लिए वर्तमान में मान्य तरीका

Screen screen = Screen.getPrimary(); 
Rectangle2D bounds = screen.getVisualBounds(); 

primaryStage.setX(bounds.getMinX()); 
primaryStage.setY(bounds.getMinY()); 
primaryStage.setWidth(bounds.getWidth()); 
primaryStage.setHeight(bounds.getHeight()); 

(आप WindowButtons.java में इसी तरह के कोड को खोजने) है

'maximize' बटन अभी भी सक्षम है और इसे क्लिक करते समय, विंडोज़ थोड़ा और (विंडोज़ ओएस) बढ़ेगा। इसके बाद 'अधिकतम' बटन अक्षम कर दिया गया है। प्रदान किए गए उदाहरण में मानक बटन बदल दिए जाते हैं। शायद यह अभी भी एक मुद्दा है।

+1

मैं सहमत हूं। यह एक मुद्दा की तरह दिखता है। लेकिन धन्यवाद। यह अभी के लिए काम करेगा। – Dorothy

+0

उस http://javafx-jira.kenai.com/browse/RT-10376 के लिए एक सुविधा अनुरोध है - इसके बाद आप इसे जल्द से जल्द प्राप्त करने के लिए वोट देना चाहेंगे। –

+0

हालांकि यह सबसे अच्छा लगता है कि हम अभी कर सकते हैं, इस दृष्टिकोण के साथ कई मुद्दे हैं। उदाहरण के लिए इसमें विश्वसनीय रूप से बताने की क्षमता नहीं है कि कोई विंडो अधिकतम है या नहीं (इसलिए इसे सत्र प्रबंधन में सहेजा/बहाल किया जा सकता है) और यह कई स्क्रीन के साथ आसानी से काम नहीं करता है। आपको 'Screen.getScreens()' के माध्यम से पुन: प्रयास करना होगा और विंडो को चालू करना होगा। जावाएफएक्स को फिर से स्विंग की तरह लगता है :-) –

-5

उपयोग इस छोटा करना, बड़ा बटन को हटाने के लिए:

primaryStage.initStyle(StageStyle.UTILITY); 

कहाँ primaryStage अपने स्टेज वस्तु है।

103

चरण श्रेणी के जावा 8 कार्यान्वयन एक अधिकतम संपत्ति, जो इस प्रकार सेट किया जा सकता प्रदान करता है:

primaryStage.setMaximized(true); 
+0

धन्यवाद !!!!!! – Matthew

+1

मामलों के लिए एक छोटा सा जोड़ा उपर्युक्त कोड अभी भी काम नहीं करता है - कॉल को कॉल करने के बाद सेटमैक्सिमाइज्ड() को कॉल करें() –

+0

@AramParonikyan मुझे उपरोक्त कोड के साथ समस्या थी। लेकिन शो() अकेले कॉल करना, जैसा कि आपने बताया है, करते हैं इस मुद्दे को हल नहीं किया। मैंने मंच को 'stage.hide();' और फिर 'stage.setMaximized (सत्य) के साथ छिपाने की कोशिश की; और उसके बाद मैंने' stage.show(); 'और इसे हल किया। लेकिन संकेत के लिए वैसे भी धन्यवाद! :) – Kami

6

बेहतर उपयोग मल्टी-स्क्रीन संगत अधिकतम तर्क:

// Get current screen of the stage  
ObservableList<Screen> screens = Screen.getScreensForRectangle(new Rectangle2D(stage.getX(), stage.getY(), stage.getWidth(), stage.getHeight())); 

// Change stage properties 
Rectangle2D bounds = screens.get(0).getVisualBounds(); 
stage.setX(bounds.getMinX()); 
stage.setY(bounds.getMinY()); 
stage.setWidth(bounds.getWidth()); 
stage.setHeight(bounds.getHeight()); 
+2

की तुलना में अन्य मूल्यों पर सेट की गई है, जैसा कि एक और उत्तर के साथ, यह अधिकतम नहीं है; यह स्क्रीन के समान आकार है। – GKFX

6

कोशिश यह सरल कोड primaryStage.setMaximized(true); और यह पूरी स्क्रीन भरता है। ध्यान दें कि यदि आप अधिकतम/छोटा बटन हटाते हैं तो एप्लिकेशन पूरी स्क्रीन भर जाएगा और टास्कबार को हटा देगा ताकि आपके इनिट स्टाइल को mnd करें यदि आपके पास

+0

_full स्क्रीन_ समस्या को हल करने के लिए ** मल्टी-स्क्रीन संगत अधिकतम तर्क ** के साथ इसे संयोजित करें। पहले 'सेटमैक्सिमाइज्ड', फिर चरण के एक्स, वाई, चौड़ाई और ऊंचाई को सेट करने के लिए 'getVisualBounds' का उपयोग करें। –