खोज…


टिप्पणियों

गुण अवलोकनीय हैं और श्रोताओं को उनके साथ जोड़ा जा सकता है। वे लगातार Node एस के गुणों के लिए उपयोग किए जाते हैं।

गुणों के प्रकार और नामकरण

मानक गुण

संपत्ति के प्रकार के आधार पर, एकल संपत्ति के लिए 3 तरीके हैं। मान लें <property> एक संपत्ति के नाम को निरूपित करते हैं और <Property> एक बड़े अक्षर के साथ संपत्ति का नाम। और T को संपत्ति का प्रकार होने दो; आदिम रैपर के लिए हम यहाँ आदिम प्रकार का उपयोग करें, जैसे String के लिए StringProperty और double के लिए ReadOnlyDoubleProperty

विधि का नाम पैरामीटर वापसी प्रकार उद्देश्य
<property>Property () संपत्ति ही, उदाहरण के लिए
DoubleProperty , ReadOnlyStringProperty , ObjectProperty<VPos>
श्रोताओं / बंधन को जोड़ने के लिए संपत्ति को स्वयं वापस करें
get<Property> () T संपत्ति में लिपटे मूल्य को वापस करें
set<Property> (T) void संपत्ति का मूल्य निर्धारित करें

ध्यान दें कि सेटर आसानी से मौजूद गुणों के लिए मौजूद नहीं है।

गुणों की सूची पढ़ें

Readonly सूची गुण ऐसे गुण हैं जो केवल एक गेटर विधि प्रदान करते हैं। इस तरह के एक संपत्ति के प्रकार है ObservableList , अधिमानतः निर्दिष्ट एक प्रकार agrument साथ। इस संपत्ति का मूल्य कभी नहीं बदलता है; ObservableList की सामग्री को बदले जा सकता है।

आसानी से नक्शा गुण

आसानी से सूची गुणों को पढ़ने के लिए समान रूप से नक्शा गुणों के समान केवल एक गटर प्रदान करते हैं और संपत्ति के मूल्य के बजाय सामग्री को संशोधित किया जा सकता है। ObservableMap एक ObservableMap लौटाता है।

StringProperty उदाहरण

निम्न उदाहरण एक संपत्ति की घोषणा (इस मामले में StringProperty ) को दर्शाता है और यह दर्शाता है कि ChangeListener एक ChangeListener कैसे जोड़ें।

import java.text.MessageFormat;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;

public class Person {

    private final StringProperty name = new SimpleStringProperty();

    public final String getName() {
        return this.name.get();
    }

    public final void setName(String value) {
        this.name.set(value);
    }

    public final StringProperty nameProperty() {
        return this.name;
    }
    
    public static void main(String[] args) {
        Person person = new Person();
        person.nameProperty().addListener(new ChangeListener<String>() {

            @Override
            public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
                System.out.println(MessageFormat.format("The name changed from \"{0}\" to \"{1}\"", oldValue, newValue));
            }
            
        });
        
        person.setName("Anakin Skywalker");
        person.setName("Darth Vader");
    }
    
}

ReadOnlyIntegerProperty उदाहरण

इस उदाहरण से पता चलता है कि एक संपत्ति बनाने के लिए एक आसानी से आवरण संपत्ति का उपयोग कैसे किया जा सकता है जिसे लिखा नहीं जा सकता है। इस मामले में cost और price को संशोधित किया जा सकता है, लेकिन profit हमेशा price - cost

import java.text.MessageFormat;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.ReadOnlyIntegerProperty;
import javafx.beans.property.ReadOnlyIntegerWrapper;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;

public class Product {
    
    private final IntegerProperty price = new SimpleIntegerProperty();
    private final IntegerProperty cost = new SimpleIntegerProperty();
    private final ReadOnlyIntegerWrapper profit = new ReadOnlyIntegerWrapper();

    public Product() {
        // the property itself can be written to
        profit.bind(price.subtract(cost));
    }

    public final int getCost() {
        return this.cost.get();
    }

    public final void setCost(int value) {
        this.cost.set(value);
    }

    public final IntegerProperty costProperty() {
        return this.cost;
    }

    public final int getPrice() {
        return this.price.get();
    }

    public final void setPrice(int value) {
        this.price.set(value);
    }

    public final IntegerProperty priceProperty() {
        return this.price;
    }

    public final int getProfit() {
        return this.profit.get();
    }

    public final ReadOnlyIntegerProperty profitProperty() {
        // return a readonly view of the property
        return this.profit.getReadOnlyProperty();
    }
    
    public static void main(String[] args) {
        Product product = new Product();
        product.profitProperty().addListener(new ChangeListener<Number>() {

            @Override
            public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
                System.out.println(MessageFormat.format("The profit changed from {0}$ to {1}$", oldValue, newValue));
            }
        
        });
        product.setCost(40);
        product.setPrice(50);
        product.setCost(20);
        product.setPrice(30);
    }
    
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow