2012-10-17 24 views
10

से अधिक कॉलम हैं, जब JavaFX 2 में एक तालिका दृश्य का उपयोग करते समय, मौजूदा लोगों का आकार बदलने के बजाय जादुई रूप से एक स्तंभ जोड़ा जाता है। कृपया निम्नलिखित स्क्रीनशॉट देखें।तालिका दृश्य में

मैं क्या उम्मीद/चाहूंगा: दोनों कॉलम में 50% स्थान होगा, कोई तीसरा (अज्ञात/खाली) कॉलम जोड़ा नहीं जाएगा।

enter image description here

बनाया दृश्य बिल्डर, FXML कोड का उपयोग:

<?import java.lang.*?> 
<?import java.util.*?> 
<?import javafx.scene.control.*?> 
<?import javafx.scene.layout.*?> 
<?import javafx.scene.paint.*?> 

<BorderPane id="BorderPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml"> 
    <top> 
    <TableView prefHeight="200.0" prefWidth="200.0"> 
     <columns> 
     <TableColumn prefWidth="75.0" text="Column X" /> 
     <TableColumn prefWidth="75.0" text="Column X" /> 
     </columns> 
    </TableView> 
    </top> 
</BorderPane> 
+0

सी [http://stackoverflow.com/q/11033404/682495](http://stackoverflow.com/q/11033404/682495) –

+0

धन्यवाद Uluk में, कि मदद की! कृपया उत्तर के रूप में पोस्ट करें, इसलिए मैं इसे सही के रूप में चुन सकता हूं :-) क्या आपको इस अजीब व्यवहार के बारे में कोई जानकारी है? –

+2

ऐसा इसलिए होता है क्योंकि डिफ़ॉल्ट कॉलम चौड़ाई व्यवहार स्तंभ में विस्तृत तत्व के लिए कॉलम समायोजित करता है। इस प्रकार खाली जगह का उपयोग नहीं किया गया। –

उत्तर

26

उपयोग

table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY); 

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

+0

क्या आप इसे एफएक्सएमएल में भी कर सकते हैं? – user3111525

+0

@ user3111525, हाँ। '' के रूप में आज़माएं। यह काम करना चाहिए, हालांकि कोशिश नहीं की। –

+0

क्या पसंदीदा चौड़ाई का उपयोग करना संभव है लेकिन दाईं ओर उस अतिरिक्त कॉलम को न दिखाएं? कंसस्ट्रिन पॉलिसी के साथ संयुक्त राष्ट्र की तरह गठबंधन की तरह। – smalafeev

2

उलुक ब्ली का जवाब कोड के लिए बिल्कुल सही है।

साथ ही, Scenebuilder का उपयोग कर, एक ही (विवश) करने के लिए गुण लटकती विंडो में नीति तैयार करना न भूलें, और यह बहुत की तरह अपने FXML फ़ाइल में दिखाई देना चाहिए:

<columnResizePolicy> 
    <TableView fx:constant = "CONSTRAINED_RESIZE_POLICY"/> 
    </columnResizePolicy> 
1

कि के लिए अच्छा था मुझे JavaFX 2,2

table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY); 
+1

आपको कुछ पाठ जोड़ना होगा कि यह अच्छा क्यों है। –

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