Autofuldførelse tekstfelt i Swing af John C.

Har en masse elementer i kombinationsfeltet gør brugeren irriteret, når du kører programmet, især når hurtigt input er nødvendig, manuel søgning ved at rulle ned rullepanel er så tidskrævende, men kan undgås, hvis vi kan få, hvad element, vi ønsker at vælge med bare skrive første eller andet bogstav i it.In en anden sag, du måske ønsker at gøre en tekstfelt med nogle forslag input som søgemaskine tekstfelt. For at gøre sådan noget, vi har brug for JTextField

JComboBox

sammen 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 udvider JComboBox {privat klasse AutoTextFieldEditor udvider BasicComboBoxEditor {private AutoTextField getAutoTextFieldEditor () {afkast (AutoTextField) editor,} AutoTextFieldEditor (java.util.List liste) {editor = ny AutoTextField (liste, AutoComboBox.this);}} offentligheden AutoComboBox (java.util.List liste) {isFired = false; autoTextFieldEditor = ny AutoTextFieldEditor (liste), setEditable (sand), setModel (ny DefaultComboBoxModel (list.toArray ()) {beskyttet ugyldig fireContentsChanged (Object obj, int i, int j) {if (isFired) super.fireContentsChanged (obj, i, j)!}}), setEditor (autoTextFieldEditor)} offentlige boolean isCaseSensitive () {return autoTextFieldEditor.getAutoTextFieldEditor () isCaseSensitive ();.} public void setCaseSensitive (boolean flag) {autoTextFieldEditor.getAutoTextFieldEditor () setCaseSensitive (flag).} offentlige boolean isStrict () {return autoTextFieldEditor.getAutoTextFieldEditor () isStrict ();.}. public void setStrict (boolean flag) {autoTextFieldEditor.getAutoTextFieldEditor () setStrict (flag);} public java.util.List getDataList () {return autoTextFieldEditor.getAutoTextFieldEditor () getDataList ();..} public void setDataList (java.util.List liste) {autoTextFieldEditor.getAutoTextFieldEditor () setDataList (liste); setModel (ny DefaultComboBoxModel (list.toArray ()));} void setSelectedValue (Object obj) {if (isFired) {tilbagevenden} else {isFired = true; setSelectedItem (obj) fireItemStateChanged (ny ItemEvent (dette, 701, selectedItemReminder , 1)), isFired = false; tilbagevenden}}Overrideprotected ugyldig fireActionEvent () {if (isFired) super.fireActionEvent ();!} private AutoTextFieldEditor autoTextFieldEditor; private boolean isFired; } For endelige kode og hele artiklen kontrollere Geek på Java