2012-05-05 14 views
5

में गुई की तरह बाध्यकारी है, मुझे आश्चर्य है, अगर जावा में डेटा बाध्यकारी बनाना संभव है तो हम इसे सी # में कर सकते हैं? बहुत गुस्से में, लेकिन मेरे लिए कोई जवाब नहीं है।
मैं बाध्य करना चाहता हूं, उदाहरण के लिए, जेटेबल में संग्रह, और जब मैं संग्रह में कुछ तत्व जोड़ता हूं, हटाता हूं या बदलता हूं तो जेटीबल को अद्यतन करना चाहता हूं।जावा डेटा सी #

अग्रिम धन्यवाद!

उत्तर

0

जांच के बाद अच्छी तरह से मुझे पता चला कि एक कस्टम मॉडल का उपयोग करने से बेहतर कुछ भी नहीं है। this blog में आप केवल एक आदर्श टेबल मॉडल पा सकते हैं।

1

यदि आपका प्रश्न सामान्य रूप से जावा गुई के बारे में है, तो Java FX 2 मूल रूप से बाध्यकारी का समर्थन करता है।
यदि यह विशेष रूप से स्विंग (आपके जेटीबल उदाहरण), there seems to be solutions too पर है, लेकिन मैं उनसे परिचित नहीं हूं।

+1

हाँ, यह वास्तव में जावा का एक बड़ा नुकसान है, अगर आप एक स्विंग डेस्कटॉप एप्लिकेशन लिखते हैं। डेटा बाध्यकारी के लिए सबसे अच्छा lib बीबीबी (बेहतर बीन बाइंडिंग) है, लेकिन इसका कोई पूर्ण उदाहरण नहीं है कि हम इसका उपयोग कैसे कर सकते हैं। मैं वास्तव में जावा में निराश और निराश हूँ। –

+0

क्या आप स्विंग से बंधे हैं? – assylias

+0

असल में, मैं इससे जुड़ा नहीं हूं, लेकिन मैं जावाएफएक्स से बिल्कुल परिचित नहीं हूं और मुझे लगता है कि जावाएफएक्स पर बिल्डिंग यूआई स्विंग पर उतना आसान नहीं है। अगर मैं गलत हूं, तो कृपया मुझे सही करें। और बीटीडब्ल्यू, क्या कोई जावाएफएक्स यूआई बिल्डर्स है? –

2

हां, जावा बीन्स बाध्यकारी है।

पर एक नज़र डालें:

ObservableList<Employee> employees = 
    ObservableCollections.observableList(
    new ArrayList<Employee>()); 

एक लेख से लिया:

  1. NetBeans BeansBinding Tutorial
  2. A Scott Violet's blog entry on BB

अपने JTable उदाहरण के लिए, वहाँ नमूदार संग्रह, उदाहरण हैं Beans Binding: A Java Data-Binding Solution with a Serious Problem

0

(मैं इसे एक पूर्ण उत्तर के रूप में उत्तर दे रहा हूं और कुछ कोड शामिल होने के बाद से कोई टिप्पणी नहीं है) शायद मुझे देर हो चुकी है, लेकिन आपने बीबीबी का उपयोग करके थोड़ा सा उदाहरण मांगा है, इसलिए यहां कोड का एक छोटा टुकड़ा है जो आप कर सकते हैं उपयोगी पाते हैं:

public static final Property<PatientModel, Long> PATIENT_MODEL_PATIENT_ID_PROPERTY_OBJECT = 
     BeanProperty.create(Patient.PATIENT_ID_PROPERTY); 
public static final Property<PatientModel, String> PATIENT_MODEL_FIRST_NAME_PROPERTY_OBJECT = 
     BeanProperty.create(Patient.FIRST_NAME_PROPERTY); 
public static final Property<PatientModel, String> PATIENT_MODEL_MIDDLE_NAME_PROPERTY_OBJECT = 
     BeanProperty.create(Patient.MIDDLE_NAME_PROPERTY); 
public static final Property<PatientModel, String> PATIENT_MODEL_SURNAME_PROPERTY_OBJECT = 
     BeanProperty.create(Patient.SURNAME_PROPERTY); 
public static final Property<PatientModel, String> PATIENT_MODEL_SECOND_SURNAME_PROPERTY_OBJECT = 
     BeanProperty.create(Patient.SECOND_SURNAME_PROPERTY); 
public static final Property<PatientModel, Sex> PATIENT_MODEL_SEX_PROPERTY_OBJECT = 
     BeanProperty.create(Patient.SEX_PROPERTY); 
public static final Property<PatientModel, String> PATIENT_MODEL_BIRTH_PLACE_PROPERTY_OBJECT = 
     BeanProperty.create(Patient.BIRTH_PLACE_PROPERTY); 
public static final Property<PatientModel, Calendrical> PATIENT_MODEL_BIRTH_DATE_PROPERTY_OBJECT = 
     BeanProperty.create(Patient.BIRTH_DATE_PROPERTY); 
public static final Property<PatientModel, Period> PATIENT_MODEL_AGE_PROPERTY_OBJECT = 
     BeanProperty.create(Patient.AGE_PROPERTY); 

(...)

private ObservableList<PatientModel> model; 
    private JTable selectionTable; 

(...)

JTableBinding<PatientModel, List<PatientModel>, JTable> selectionTableBinding 
      = SwingBindings.createJTableBinding(UpdateStrategy.READ_WRITE, this.model, this.selectionTable); 
     selectionTableBinding.addColumnBinding(PATIENT_MODEL_PATIENT_ID_PROPERTY_OBJECT); 
     selectionTableBinding.addColumnBinding(PATIENT_MODEL_FIRST_NAME_PROPERTY_OBJECT); 
     selectionTableBinding.addColumnBinding(PATIENT_MODEL_SURNAME_PROPERTY_OBJECT); 
     selectionTableBinding.addColumnBinding(PATIENT_MODEL_SEX_PROPERTY_OBJECT); 
     selectionTableBinding.addColumnBinding(PATIENT_MODEL_BIRTH_PLACE_PROPERTY_OBJECT); 
     selectionTableBinding.addColumnBinding(PATIENT_MODEL_BIRTH_DATE_PROPERTY_OBJECT); 
     selectionTableBinding.addColumnBinding(PATIENT_MODEL_AGE_PROPERTY_OBJECT); 

मेरे अनुभव से, सीखना आनुपातिक रूप से कठिन है क्योंकि यह सीखने के बाद हास्यास्पद रूप से आसान कैसे हो जाता है। मुझे पता है कि दस्तावेज बहुत अच्छा नहीं है, लेकिन http://www.jarvana.com/jarvana/view/it/tidalwave/betterbeansbinding/betterbeansbinding-swingbinding/1.3.0/betterbeansbinding-swingbinding-1.3.0-javadoc.jar!/org/jdesktop/swingbinding/JTableBinding.html पर एक नज़र डालने और कुछ आत्म शिक्षण उदाहरणों ने मुझे बर्बाद घंटों से बचा लिया है। बीबीबी के अलावा जेजीडीज बाइंडिंग भी हैं जिन्हें मैंने व्यक्तिगत रूप से नहीं देखा है।