मैं नेटबीन्स 7.1 में संपादन योग्य JComboBox
में ऑटो-पूर्ण कैसे कर सकता हूं जैसे वीबी डॉट नेट में ComboBox
में। मेरे पास एक सूची बाध्यकारी वाला कॉम्बो बॉक्स है, मैं सूची में आइटम के केवल कुछ पहले अक्षर टाइप करके आइटम का चयन करना चाहता हूं उदाहरण के लिए यदि किसी सूची में kitten
है, तो यह ki
टाइप करते समय चुना जाना चाहिए।JComboBox स्वत: पूर्ण
उत्तर
यदि आप इसे स्वयं करना चाहते हैं, तो आप this article में दिए गए चरणों का पालन कर सकते हैं।
यदि आप पहिया को फिर से शुरू नहीं करना चाहते हैं, तो आप this article में बताए गए अनुसार इस कार्यक्षमता को जोड़ने के लिए मौजूदा 3 वें पार्टी lib का उपयोग कर सकते हैं। उदाहरण SwingX पुस्तकालय (उदाहरण के जुड़े हुए लेख से नकल) का उपयोग कर के लिए:
this.comboBox = new JComboBox(new Object[] { "Ester", "Jordi",
"Jordina", "Jorge", "Sergi" });
AutoCompleteDecorator.decorate(this.comboBox);
मैं एक कस्टम स्विंग JComboBox "AutoComboBox" नाम तो आप इस gist forking द्वारा उस पर टाइप करते हुए जो ऑटो पूरा करता है विकसित की है।
यहां एक छोटा डेमो है।
सबसे पहले घोषित करें और इसे प्रारंभ करें। (यदि आप एक आईडीई का उपयोग कर रहे हैं, तो बस को खींच कर अपने JFrame या JDialog फार्म के लिए पर कक्षा जगह)
AutoComboBox autoComboBox = new AutoComboBox();
अगला, आइटम सूची निर्धारित किया है। यह एक स्ट्रिंग सरणी लेता है। आप AutoComboBox क्लास को संशोधित करके प्रकार बदल सकते हैं।
String[] itemArray = {"Malith", "John", "Jack" };
autoComboBox.setKeyWord(itemArray);
अब आप जो "Malith" है एक ऑटो JComboBox को पूरा करने के लिए है, "जॉन", आइटम के रूप में "जैक"!
यहाँ दो वर्गों मैं विकसित की है,
हैं AutoComboBox.java
import java.util.Vector;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JTextField;
public class AutoComboBox extends JComboBox<Object> {
String keyWord[] = {"item1", "item2", "item3"};
Vector myVector = new Vector();
public AutoComboBox() {
setModel(new DefaultComboBoxModel(myVector));
setSelectedIndex(-1);
setEditable(true);
JTextField text = (JTextField) this.getEditor().getEditorComponent();
text.setFocusable(true);
text.setText("");
text.addKeyListener(new ComboListener(this, myVector));
setMyVector();
}
/**
* set the item list of the AutoComboBox
* @param keyWord an String array
*/
public void setKeyWord(String[] keyWord) {
this.keyWord = keyWord;
setMyVectorInitial();
}
private void setMyVector() {
int a;
for (a = 0; a < keyWord.length; a++) {
myVector.add(keyWord[a]);
}
}
private void setMyVectorInitial() {
myVector.clear();
int a;
for (a = 0; a < keyWord.length; a++) {
myVector.add(keyWord[a]);
}
}
}
ComboListener.java
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Vector;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import org.apache.commons.lang3.text.WordUtils;
public class ComboListener extends KeyAdapter
{
@SuppressWarnings("rawtypes")
JComboBox cbListener;
@SuppressWarnings("rawtypes")
Vector vector;
@SuppressWarnings("rawtypes")
public ComboListener(JComboBox cbListenerParam, Vector vectorParam)
{
cbListener = cbListenerParam;
vector = vectorParam;
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public void keyReleased(KeyEvent key)
{
// TODO Auto-generated method stub
String text = ((JTextField)key.getSource()).getText();
cbListener.setModel(new DefaultComboBoxModel(getFilteredList(text)));
cbListener.setSelectedIndex(-1);
((JTextField)cbListener.getEditor().getEditorComponent()).setText(text);
cbListener.showPopup();
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public Vector getFilteredList(String text)
{
Vector v = new Vector();
for(int a = 0;a<vector.size();a++)
{
if(vector.get(a).toString().startsWith(text))
{
v.add(vector.get(a).toString());
}
else if(vector.get(a).toString().startsWith(text.toLowerCase()))
{
v.add(vector.get(a).toString());
}
else if(vector.get(a).toString().startsWith(text.toUpperCase()))
{
v.add(vector.get(a).toString());
}
else if(vector.get(a).toString().startsWith(WordUtils.capitalizeFully(text)))
{
v.add(vector.get(a).toString());
}
else if(vector.get(a).toString().startsWith(WordUtils.uncapitalize(text)))
{
v.add(vector.get(a).toString());
}
}
return v;
}
}
आपको org.apache.commons.lang3.text.WordUtils आयात करने की आवश्यकता हो सकती है ... – Malith
दिलचस्प है, लेकिन इसमें कुछ बदलावों की आवश्यकता है। सबसे महत्वपूर्ण बात यह है कि घर की कुंजी आपके समाधान में काम नहीं करती है। मैंने इसे यहां ठीक कर दिया है: http://tinybrain.de/1007529। एक खुला सवाल यह है कि नीचे तीर को सही तरीके से कैसे काम करना है। –
एक और शांत पुस्तकालय है कि एक JComboBox माध्यम से खोज : http://www.jidesoft.com/products/oss.htm
आप जार यहां से डाउनलोड कर सकते हैं: http://www.java2s.com/Code/JarDownload/jide/jide-oss-3.5.7.jar.zip
अपने सभी आपको क्या करना है इस परियोजना में पुस्तकालय आयात करने के बाद है:
JComboBox comboBox = ....;
ComboBoxSearchable searchable = new ComboBoxSearchable(comboBox);
- 1. स्वत: पूर्ण
- 2. स्वत: पूर्ण
- 3. सोलर JQuery स्वत: पूर्ण स्वत: पूर्ण नहीं है
- 4. jQuery स्वत: पूर्ण - स्वत: पूर्ण इनपुट क्षेत्र की आईडी प्राप्त
- 5. ग्रहण: स्वत: पूर्ण
- 6. jQuery UI स्वत: पूर्ण
- 7. jQuery स्वत: पूर्ण कठिनाई
- 8. PyCharm ऑटो स्वत: पूर्ण
- 9. स्वत: पूर्ण jquery ui
- 10. सबवर्सन भंडार स्वत: पूर्ण
- 11. Jquery स्वत: पूर्ण - लिस्टिंग
- 12. Emacs स्वत: पूर्ण स्थापित
- 13. JQuery स्वत: पूर्ण टेक्स्टबॉक्स
- 14. jQuery UI स्वत: पूर्ण
- 15. ग्रहण CDT स्वत: पूर्ण
- 16. jQuery यूआई स्वत: पूर्ण
- 17. स्वत: पूर्ण कॉम्बोबॉक्स सी #
- 18. jQuery स्वत: पूर्ण + AngularJS
- 19. स्वत: पूर्ण jquery
- 20. jQueryUI स्वत: पूर्ण
- 21. कॉम्बो बॉक्स स्वत: पूर्ण
- 22. विम - स्वत: पूर्ण जावा
- 23. JQueryUI स्वत: पूर्ण आइटम
- 24. IntelliJ स्वत: पूर्ण भागने
- 25. स्वत: पूर्ण जावास्क्रिप्ट
- 26. jQuery UI स्वत: पूर्ण
- 27. PyCharm स्वत: पूर्ण
- 28. आईओएस स्वत: पूर्ण सुविधा
- 29. स्वत: पूर्ण टेक्स्टबॉक्स नियंत्रण
- 30. NSTextField स्वत: पूर्ण
पता नहीं है कि यह कैसे था जब यह लिखा गया था, लेकिन पहले लिंक में कोड अब सार्वजनिक डोमेन में है और साइट पर उपलब्ध है। यह तुरंत उपयोग करने योग्य था। – reden