2013-02-04 35 views
11

मैं जब मेरे tabPane में से एक टैब पर क्लिक किया है कुछ करने के लिए कोशिश कर रहा हूँ का उपयोग कर चयन किया जाता है, मैं उपयोग कार्रवाई घटना की कोशिश की है, लेकिन यह काम नहीं करता है:मैं कुछ कार्रवाई कैसे कर सकते है जब एक विशिष्ट टैब JavaFX

public void tabPressClicked (ActionEvent event){ 
     comboBoxPresYear.setVisible(true); 
     lblPresYear.setVisible(true); 
    } 

[संपादित]

ऐसा करने के लिए सही तरीके से:

tabPresentation.setOnSelectionChanged(new EventHandler<Event>() { 
      @Override 
      public void handle(Event t) { 
       if (tabPresentation.isSelected()) { 
        comboBoxPresYear.setVisible(true); 
        lblPresYear.setVisible(true); 
       } 
      } 
     }); 

उत्तर

13

मुझे यकीन है कि आप क्या करना/क्या ActionEvent आप उम्मीद कर रहे हैं की कोशिश कर रहे हैं क्या नहीं कर रहा हूँ लेकिन या तो somet कोशिश हिंग की तरह:

tabPane.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() { 
    @Override 
    public void changed(ObservableValue<? extends Number> ov, Number oldValue, Number newValue) { 
     // do something... 
    } 
}); 

अगर आप कुछ करना चाहता हूँ चयन परिवर्तन (किसी भी टैब)

या का प्रयास करते समय:

http://docs.oracle.com/javafx/2/api/javafx/scene/control/Tab.html#setOnSelectionChanged%28javafx.event.EventHandler%29

कोई विशिष्ट टैब के लिए (मैं प्रयास नहीं किया है यह अभी तक, हालांकि)।

+0

सबसे आसान तरीका हो नहीं चाहेंगे क्या मैं जरूरत (newValue जब मैं चयन के लिए एक विशिष्ट टैब (tabPress) एक बता गया और एक लेबल दर्शनीय सेट किया गया है, बस इसे –

+0

सिर्फ अगर जोड़ने = yourSpecificTabNUmber) {comboBoxPresYear.setVisible (सत्य); lblPresYear.setVisible (true);} बदलने के लिए विधि :) – invariant

+1

क्या आपने Tab.setOnSelectionChanged का उल्लेख किया था? – Puce

11

आप selectedItemProperty या selectedIndexProperty के साथ ऐसा करते हैं जैसे पुस कह रहा था। यहाँ selectedItemProperty जो मुझे लगता है क्योंकि आपके द्वारा चयनित Tab स्वयं आइटम मिल बेहतर है के साथ समाधान

tabPane.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Tab>() { 

    @Override 
    public void changed(ObservableValue<? extends Tab> observable, Tab oldTab, Tab newTab) { 
     if(newTab == tabPresentation) { 
      comboBoxPresYear.setVisible(true); 
      lblPresYear.setVisible(true);} 
     } 
    }); 

मुझे लगता है tabPresentationTab वस्तु ही है।

+0

यह वास्तव में अच्छा है, क्योंकि मुझे सीधे टैब आइटम मिलता है और किसी विशिष्ट टैब नंबर को संदर्भित करने की आवश्यकता नहीं होती है, जो बदल सकता है। – tareq

0

यह

tab.selectedProperty().addListener((observable, oldValue, newValue) -> { 
     if (newValue) { 
      comboBoxPresYear.setVisible(true); 
      lblPresYear.setVisible(true);} 
     } 
    });