2013-04-26 5 views
13

JavaFX docs for HBox कहते हैं: एक hbox अपनी पसंद चौड़ाई से भी बड़ा आकार दिया जाता हैमेरे जावाएफएक्स एचबीओक्स में बच्चे क्यों नहीं बढ़ेंगे (सीनबिल्डर)?

हैं, तो डिफ़ॉल्ट रूप से यह उनके पसंदीदा चौड़ाई के लिए बच्चों रखेंगे, अतिरिक्त स्थान अप्रयुक्त छोड़कर। यदि कोई एप्लिकेशन एक या अधिक बच्चों को आवंटित करना चाहता है तो अतिरिक्त जगह यह वैकल्पिक रूप से बच्चे पर एक कठोर बाधा सेट कर सकती है। विवरण के लिए "वैकल्पिक लेआउट प्रतिबंध" देखें।

संलग्न छवि में, क्षैतिज चौड़ाई भरने वाला बटन क्यों नहीं है?

enter image description here

HBox.setHgrow(field, Priority.ALWAYS) कोड docs देखें के रूप में है कि एक ही नहीं है।

उत्तर

19

अपना बटन चुनें के रूप में आप अपने स्क्रीनशॉट में और करने के लिए अधिकतम चौड़ाई सेट सही पर लेआउट फलक में उन लोगों के आकार बक्से में किया है:

MAX_VALUE 

यह किया जा रहा से बटन का अधिकतम आकार बंद हो जाएगा बटन के पसंदीदा आकार से बंधे हैं।

Oracle की Tips for Sizing and Aligning Nodes

यूआई नियंत्रण भी डिफ़ॉल्ट न्यूनतम और अधिकतम आकार है कि नियंत्रण के विशिष्ट उपयोग के आधार पर कर रहे हैं प्रदान करते हैं देखें। उदाहरण के लिए, बटन ऑब्जेक्ट का अधिकतम आकार इसके पसंदीदा आकार में डिफ़ॉल्ट होता है क्योंकि आप आमतौर पर बटन को मनमाने ढंग से बड़े नहीं करना चाहते हैं।

....

बटन के सभी सक्षम करने के लिए VBox फलक की चौड़ाई के आकार दिया जा करने के लिए, प्रत्येक बटन की अधिकतम चौड़ाई Double.MAX_VALUE निरंतर है, जो एक नियंत्रण सक्षम बनाता है पर सेट है सीमा के बिना बढ़ने के लिए। अधिकतम मूल्य स्थिरांक का उपयोग करने का एक विकल्प अधिकतम चौड़ाई को एक विशिष्ट मान पर सेट करना है, जैसे कि 80.0।

+0

कोड में समतुल्य: 'myButton.setMaxWidth (Double.MAX_VALUE);' –

2

आप सीधे fxml का उपयोग करते हैं, तो आप maxWidth="Infinity" उपयोग कर सकते हैं, या - जब MAX_VALUE कि maxWidth="1.7976931348623157E308" का प्रतिनिधित्व करती है का उपयोग कर SceneBuilder करता है बस के रूप में।

यह (प्रगति बार एक GridPane अंदर है ऐसा दिखाई दे सकता:

<ProgressBar maxWidth="Infinity" prefWidth="200.0" progress="0.0" GridPane.columnIndex="0" GridPane.hgrow="ALWAYS" GridPane.rowIndex="2" GridPane.valignment="CENTER"> 
संबंधित मुद्दे