2013-01-17 10 views
10

मेरे पास TabPane है जिसमें कई Tab एस हैं। यदि Tab में किसी ऑपरेशन के परिणाम असफल हो गए हैं, तो मैं TabLabel को Fill लाल या संभवतः बनावट (रंग अंधापन वाले लोगों के लिए) सेट करना चाहता हूं। मैं बाद में Color को अपने डिफ़ॉल्ट पर रीसेट करना चाहता हूं।JavaFX में किसी टैब लेबल के रंग या बनावट को प्रोग्रामेटिक रूप से सेट करने के लिए कैसे करें?

यहां कुछ प्रश्न पढ़ने से, कोई स्टाइल शीट का उपयोग करके इसे स्थिर रूप से सेट कर सकता है।

#MyTabPane .tab *.tab-label { 
    -fx-text-fill: white; 
} 

कैसे एक Tablabel पहुँच सकते हैं और गतिशील रूप से सेट यह रंग है/बनावट हैं? ELLTZ

कैसे एक का उपयोग इनलाइन शैलियों ऊपर कहा गया है सकते हैं द्वारा

tab.setStyle("??");

जोड़ी गई Paint दोनों शैली वर्ग tab-label साथ Label और Button (StackPane) भी tab-close-button

बदलने के लिए कोड उदाहरणों की आवश्यकता है

उत्तर

11

ग्राफिक्स स्थापना और स्टाइल यह मेरे लिए चाल किया:

Tab tabB = new Tab(); 
tabB.setText(""); 
tabPane.getTabs().add(tabB); 
tabB.setStyle("-fx-border-color:red; -fx-background-color: blue;"); 
tabB.setGraphic(new Label("Tab B")); 
tabB.getGraphic().setStyle("-fx-text-fill: #c4d8de;"); 
+0

धन्यवाद। हैरानी की बात है, यदि आप tab1.setGraphic (imageView) करते हैं, और फिर tab2.setGraphic (imageView), टैब 1 से टैब 2 तक ग्राफ़िक स्विच करते हैं। केवल एक टैब में ग्राफिक है। – likejiujitsu

+1

यह आश्चर्य की बात नहीं है, क्योंकि एक नोड हमेशा दृश्यग्राफ में केवल एक बार हो सकता है। एक "ग्राफिक" किसी भी नोड की तरह दृश्यग्राफ में एक सामान्य नोड है। – Sebastian

+1

जो आपको आश्चर्यचकित करता है कि वे इसे पहली जगह 'ग्राफ' क्यों कहते हैं। लेकिन अच्छी तरह से, हाँ यह सच है, इसलिए यह आश्चर्य की बात नहीं है कि ImageView में केवल 1 पैरेंट हो सकता है। –

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

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