आप JavaFX 2 का उपयोग कर रहे है तो यह दोनों JavaBeans घटक वास्तुकला और ऑब्जर्वर डिजाइन पैटर्न के लिए एक बाहर के बॉक्स समाधान प्रदान करता है। इसके अलावा यह संपत्ति बाइंडिंग द्वारा चर की स्थिति को जोड़ने की एक बड़ी लचीलापन देता है। नीचे दिया गया कोड संपत्ति बदलती घटनाओं और संपत्ति चर के बाध्यकारी को दर्शाता है। बेशक आप getFlag()
और setFlag()
जैसे विवरण छुपाने के लिए संपत्ति एक्सेसर्स को लपेट सकते हैं, और शेष एप्लिकेशन में उनका उपयोग कर सकते हैं।
public class Demo extends Application {
private BooleanProperty booleanProperty = new SimpleBooleanProperty(true);
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
// Add change listener
booleanProperty.addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
System.out.println("changed " + oldValue + "->" + newValue);
myFunc();
}
});
Button btn = new Button();
btn.setText("Toggle boolean flag");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
booleanProperty.set(!booleanProperty.get()); //toggle
System.out.println("toggled to " + booleanProperty.get());
}
});
// Bind to another property variable
btn.underlineProperty().bind(booleanProperty);
StackPane root = new StackPane();
root.getChildren().add(btn);
primaryStage.setScene(new Scene(root, 300, 250));
primaryStage.show();
}
public boolean getFlag() {
return booleanProperty.get();
}
public void setFlag(boolean val) {
booleanProperty.set(val);
}
}
स्रोत
2012-04-02 12:52:11
आप हमें कुछ कोड दिखाया जा सका यहाँ एक अच्छा ट्यूटोरियल है? मुझे नहीं लगता कि आप जो पूछ रहे हैं वह संभव है लेकिन एक ही प्रभाव अलग तरीके से पूरा किया जा सकता है। – chandsie