मैं javafx को एक कस्टम घटक बनाने की कोशिश कर रहा हूं, इसलिए मैं अपनी कक्षा को javafx.scene.control बढ़ाता हूं। नियंत्रण और कन्स्ट्रक्टर पर यह सामग्री को खींचता है।जावाएफएक्स: मेरे कस्टम घटक को मूल लेआउट से सभी उपलब्ध स्थान का उपयोग कैसे करें?
मेरे संदेह हैं: मैं इसे अपने मूल लेआउट पर उपलब्ध सभी जगहों को भरने के लिए "बढ़ने" कैसे बना सकता हूं? जब मैं एक TextArea बजाय ... जगह की तरह
यह एक क्या मैं का उदाहरण हटना है:
@Override
public void start(Stage primarystage) throws Exception {
BorderPane bpane = new BorderPane();
mainscene = new Scene(bpane, 800, 600);
((BorderPane) this.mainscene.getRoot()).setCenter(t);
primarystage.setScene(mainscene);
primarystage.show();
}
इस उदाहरण TextArea सभी जगह लेआउट इसके लिए प्रदान करते हैं मिल जाएगा। मैं चाहता हूं कि मेरा घटक वही करे!
सभी मैंने पहले से ही करने की कोशिश की है: - गुण सेट करें मैक्सविड्थ/ऊंचाई, setPrefWidth/ऊंचाई, setMinWidth/ऊंचाई; (जब मैं MinValues सेट करता हूं, तो यह हमेशा इस मान का उपयोग आकर्षित करने के लिए करता है लेकिन अब "चौड़ाई" मान को अपडेट नहीं करता है) - बड़े आकार को मजबूर करने के लिए Double.MAX_VALUE का उपयोग करने का प्रयास किया गया तो लेआउट निजीकृत; सब कुछ फ्लॉप काम :(मैं किसी भी तरह भूल जाना चाहिए ... - मैं एक छोटे से भी रोया, लेकिन फिर भी यह कुछ भी नहीं काम करने के = '(
हो सकता है कि एक सुराग है, मैं एक श्रोता इस तरह नीचे डाल दिया, और हर मैं अपने आवेदन/चरण यह TextArea अद्यतन करता है आकार बदल दें। लेकिन जब मैं इस श्रोता मेरी घटक करना जोड़ने यह कभी नहीं अद्यतन मिलता है ...
TextArea t = new TextArea("teste");
t.widthProperty().addListener(new ChangeListener() {
public void changed(ObservableValue observable, Object oldValue, Object newValue) {
System.out.println(oldValue + "|" + newValue);
}
});
शायद मैं कुछ गुण या कुछ भूल, मैं डॉन द्वारा गुजर पता नहीं ...
मैंने पहले ही Google की कोशिश की है, लेकिन ऐसा लगता है कि जावाएफएक्स का दस्तावेज बहुत छोटा और सुपरफीसी है अल, और उनमें से एक बहुत JavaFX स्क्रिप्ट पर आधारित है ...
मैं भी किसी भी ट्यूटोरियल उन्हें ओरेकल द्वारा की पेशकश की एक ...
किसी भी मदद की अग्रिम धन्यवाद ... मैं बात बेहतर स्वीकार करता रहा ज्यादा करने के लिए लिखा था ... = हे
एंकर का उपयोग करने की जरूरत है प्रदान करता है (उदाहरण के लिए: 'AnchorPane.setBottomAnchor (yourNode, इनसेट)')। कस्टम घटक के मामले में – assylias
स्टैकपेन मेरे लिए काम करता है। बहुत बहुत धन्यवाद। – ruX