Komplettera automatiskt textfält i Swing av John C.

Har en massa artiklar i kombinationsrutan gör användaren irriterad när du kör programmet, särskilt när snabb inmatning behövs, manuell sökning genom att rulla ner rullningslisten är så tidskrävande men kan undvikas om vi kan få vad objekt vi vill välja genom att bara skriva första eller andra skrivelse av it.In annat fall du kanske vill göra en textfält med några förslag ingång som sökmotor textfält. För att göra något sådant, vi behöver JTextField Hotell och JComboBox

tillsammans som one.Custom JComboBox:

import java.awt.event.ItemEvent, import javax.swing.DefaultComboBoxModel, import javax.swing .JComboBox, import javax.swing.plaf.basic.BasicComboBoxEditor; public class AutoComboBox utökar JComboBox {privat klass AutoTextFieldEditor utökar BasicComboBoxEditor {private AutoTextField getAutoTextFieldEditor () {return (AutoTextField) redaktör;} AutoTextFieldEditor (java.util.List lista) {redaktör = new AutoTextField (lista, AutoComboBox.this);}} public AutoComboBox (java.util.List lista) {isFired = false; autoTextFieldEditor = new AutoTextFieldEditor (lista), setEditable (true), setModel (ny DefaultComboBoxModel (list.toArray ()) {skyddade void fireContentsChanged (Objekt obj, int i, int j) {if (isFired) super.fireContentsChanged (obj, i, j),!}}), setEditor (autoTextFieldEditor);} public boolean isCaseSensitive () {return autoTextFieldEditor.getAutoTextFieldEditor () isCaseSensitive ();.} public void setCaseSensitive (boolean flagga) {autoTextFieldEditor.getAutoTextFieldEditor () setCaseSensitive (flagga),.} public boolean isStrict () {return autoTextFieldEditor.getAutoTextFieldEditor () isStrict ();.}. public void setStrict (boolean flagga) {autoTextFieldEditor.getAutoTextFieldEditor () setStrict (flagga);} public java.util.List getDataList () {return autoTextFieldEditor.getAutoTextFieldEditor () getDataList ();..} public void setDataList (java.util.List lista) {autoTextFieldEditor.getAutoTextFieldEditor () setDataList (lista); setModel (ny DefaultComboBoxModel (list.toArray ()));} void setSelectedValue (Object obj) {if (isFired) {return;} else {isFired = true; setSelectedItem (obj), fireItemStateChanged (ny ItemEvent (detta, 701, selectedItemReminder 1)), isFired = false; avkastning;}}Overrideprotected void fireActionEvent () {if (isFired) super.fireActionEvent ();!} privat AutoTextFieldEditor autoTextFieldEditor; privat boolean isFired; } För Final kod och hela artikeln kontrollera Geek On Java Omdömen