2011-11-29 13 views
12

मेरे जावाएफ़एक्स 2.0 ऐप में, मुझे एक घटक को प्रतिस्थापित करने की आवश्यकता है जिसका उपयोग awt.CardLayout है। कार्डलेआउट में एक स्टैक के रूप में एक कार्यक्षमता है जो ढेर में शीर्ष घटक प्रदर्शित करती है। और हम मैन्युअल रूप से कॉन्फ़िगर कर सकते हैं जिसे प्रदर्शित किया जाना है।मैं अपने javaFX 2.0 एप्लिकेशन में awt.CardLayout की कार्यक्षमता को कैसे कार्यान्वित कर सकता हूं?

जावाएफ़एक्स 2.0 में, स्टैकपेन नामक एक लेआउट है। लेकिन यह कार्डलेआउट की तरह नहीं लगता है।

उत्तर

11

कोई CardLayout नहीं है, लेकिन आप TabPane उपयोग कर सकते हैं या बस समूहों स्विच:

public void start(Stage stage) { 

    VBox vbox = new VBox(5); 

    Button btn = new Button("1"); 
    Button btn2 = new Button("2"); 

    final Pane cardsPane = new StackPane(); 
    final Group card1 = new Group(new Text(25, 25, "Card 1")); 
    final Group card2 = new Group(new Text(25, 25, "Card 2")); 

    btn.setOnAction(new EventHandler<ActionEvent>() { 
     public void handle(ActionEvent t) { 
      cardsPane.getChildren().clear(); 
      cardsPane.getChildren().add(card1); 
     } 
    }); 

    btn2.setOnAction(new EventHandler<ActionEvent>() { 
     public void handle(ActionEvent t) { 
      cardsPane.getChildren().clear(); 
      cardsPane.getChildren().add(card2); 
     } 
    }); 

    vbox.getChildren().addAll(btn, btn2, cardsPane); 
    stage.setScene(new Scene(vbox)); 
    stage.setWidth(200); 
    stage.setHeight(200); 
    stage.show(); 

} 
+0

मैंने टैबपेन के साथ प्रयास किया। लेकिन यह एक टैब मेनू प्रदर्शित करता है। तो मैंने जिस तरह से सुझाव दिया है, मैंने इसका इस्तेमाल किया। यह मेरी आवश्यकता के लिए ठीक काम करता है। धन्यवाद सर्गेई। :) – Anuruddha

+2

नोट, 2.2 रिलीज में 'पेजिनेशन' नामक नया नियंत्रण है जो आपकी आवश्यकताओं को और भी बेहतर तरीके से फिट कर सकता है। –

6

एक अन्य विकल्प StackPane उपयोग करें और सभी की दृश्यता लेकिन curent Panefalse करने के लिए सेट किया जा सके। आदर्श नहीं है, लेकिन समस्या के बारे में सोचने का एक और तरीका

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

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