] यह अन्य वस्तुओं को सूचित करने की अनुमति देता है जब कोई संपत्ति बदलती है, जो कि GUI को तदनुसार अद्यतन करने के लिए उपयोगी हो सकती है।
इस उदाहरण में, हम एक JTextarea में प्रदर्शित होने वाले सरणी को अद्यतन करने की अनुमति देने के लिए स्विंगप्रोपर्टेचेंजसुपोर्ट का उपयोग कर रहे हैं। एक इनपुट संवाद के माध्यम से दर्ज किया गया। सरणी को अपडेट किया गया है, लेकिन GUI ताज़ा नहीं है।
आयात java.awt.event.actionevent;
आयात java.awt.event.actionListener;
आयात java.awt.event.focuslistener;
आयात java.beans.propertychangeEvent;
आयात java.beans.propertychangelistener;
आयात javax.swing.jbutton;
आयात javax.swing.jframe;
आयात javax.swing.joptionpane;
आयात javax.swing.jpanel;
आयात javax.swing.jtextarea;
आयात javax.swing.event.swingpropertychangesupport;
सार्वजनिक वर्ग मुख्य {
सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] arg) {
Guiforupdate प्रदर्शन = new Guiforupdate ();
display.setvisible (सत्य);
}
}
क्लास Guiforupdate JFrame लागू करता है एक्शनलिस्टनर {
/**
*
*
निजी स्थैतिक अंतिम लंबा सीरियलवर्जन = 1 एल;
निजी फोकस लिस्टेनर फ़ोकसलिस्टनर;
निजी स्ट्रिंग mlist;
निजी JButton चांगरेरेबटन;
निजी JTextarea Codein, DisplayOutput;
निजी int arrayindex;
निजी JPanel डिस्प्लेपैनल;
निजी ArrayForupDating ArrayForupDate = नया ArrayForupDating ();
सार्वजनिक guiforupdate () {
सेट्साइज़ (224, 180);
Layoutleft ();
लेआउटडिसप्ले ();
लेआउटबॉटम ();
}
/**
* सरणी के लिए एक प्रदर्शन क्षेत्र जोड़ता है
*
सार्वजनिक शून्य लेआउटडिस्प्ले () {
DisplayPanel = new JPanel ();
Add (DisplayPanel, BorderLayout.Center);
DisplayOutput = new JTextArea ();
DisplayPanel.add (DisplayOutput);
DisplayOutput.AddFocusListener (FocusListener);
mlist = arrayforupdate.getBoundProperty ();
Arrayforupdate.addpropertychangelistener (नया प्रॉपर्टीचेंजलिस्टनर () {
@Override
सार्वजनिक शून्य propertyChange (propertyChangeEvent pcevt) {
if (pcevt.getPropertyname ()।
Arrayforupdating.bound_property)) {
mlist = (pcevt.getNewValue ()। tostring ());
अद्यतनता ();
}
}
});
DisplayOutput.settext (MLIST);
}
/**
* GUI के बाईं ओर बाएं हाथ के साइड तत्व जोड़ता है
*
सार्वजनिक शून्य Layoutleft () {
JPanel बचा = नया JPanel ();
जोड़ें (बाएं, borderlayout.west);
कोडिन = नया JTextarea (2, 2);
LEFT.ADD (CODEIN);
Codein.AddFocusListener (FocusListener);
}
/**
* GUI के नीचे के नीचे के तत्वों को जोड़ता है
*
सार्वजनिक शून्य लेआउटबॉटम () {
JPanel नीचे = नया JPanel ();
चांगनेरेबटन = नया JButton ("संशोधित सरणी");
Changearraybutton.addactionListener (यह);
नीचे।
जोड़ें (नीचे, BorderLayout.south);
}
/**
* प्रक्रिया बटन क्लिक
*
सार्वजनिक शून्य ActionPerformed (ActionEvent AE) {
if (ae.getSource () == चेंजरेरेबटन) {
// पहले जाँच करें कि क्या कोई कोड दर्ज किया गया है
if (codein.gettext ()। ट्रिम ()। लंबाई ()! = 0) {
// कॉल modifymemory () विधि
ModifyArray ();
} अन्य
Joptionpane.showmessagedialog (null,
"कृपया पहले कुछ दर्ज करें।");
}
}
/**
* सरणी को संशोधित करने की विधि
*
सार्वजनिक शून्य modifyarray () {
// दर्ज पता प्राप्त करने के लिए संवाद दिखाएं
स्ट्रिंग AddressTomoDify = (स्ट्रिंग) joptionpane
.ShowInputDialog ("किस स्थान पर?");
// पुष्टि करें कि क्या एक स्ट्रिंग दर्ज किया गया था
if (
// यदि दशमलव पता दर्ज किया जाता है तो पूर्णांक में परिवर्तित करें
ArrayIndex = integer.parseint (AddressTomoDify);
}
// पूर्णांक के रूप में पास करें
ProcessInput (ArrayIndex);
}
सार्वजनिक शून्य प्रक्रिया (int a) {
स्ट्रिंग newvalue = codein.gettext ();
Arrayforupdate.instructionsin (newvalue, a);
}
सार्वजनिक शून्य अद्यतनता () {
DisplayOutput.settext (MLIST);
}
}
क्लास Arrayforupdating {
सार्वजनिक स्थैतिक अंतिम स्ट्रिंग बाउंड_प्रोपर्टी = "बाउंड प्रॉपर्टी";
निजी स्ट्रिंग बाउंडप्रोपर्टी = "";
निजी swingpropertychangesupport spcsupport = new swingpropertychangesupport (
यह);
निजी स्ट्रिंगबिल्डर mlist;
निजी int [] MyArray;
सार्वजनिक ArrayForupDating () {
MyArray = नया int [5];
for (int i = 0; i & lt; myarray.length; i) {
MyArray [i] = 0;
}
setArrayyDisplayString ();
}
/**
* सरणी के स्वरूपित स्ट्रिंग बनाने के लिए विधि
*
सार्वजनिक शून्य setarrayydisplaystring () {
// मेमोरी टैब में प्रदर्शन के लिए स्ट्रिंगबिल्डर बनाएं
mlist = new stringbuilder ();
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3