Fonctionnalité de saisie semi-automatique avec JTextfield et JList
Les fonctionnalités de saisie semi-automatique améliorent l'expérience utilisateur en présentant des suggestions basées sur une saisie partielle. Pour un programme de saisie semi-automatique utilisant JTextfield et JList, il est essentiel d'implémenter un mécanisme qui fournit des suggestions au fur et à mesure que l'utilisateur tape.
Algorithme
Implémentation du code
Considérez l'extrait de code Java suivant qui démontre la fonctionnalité de saisie semi-automatique :
import java.awt.*; import java.util.ArrayList; import javax.swing.*; public class AutoCompleteTextField { private ArrayList<String> listSomeString = new ArrayList<String>(); private Java2sAutoTextField someTextField = new Java2sAutoTextField(listSomeString); private ArrayList<String> listSomeAnotherString = new ArrayList<String>(); private Java2sAutoComboBox someComboBox = new Java2sAutoComboBox(listSomeAnotherString); public AutoCompleteTextField() { // Populate suggestion lists listSomeString.add("-"); listSomeString.add("Snowboarding"); listSomeString.add("Rowing"); listSomeString.add("Knitting"); listSomeString.add("Speed reading"); listSomeString.add("Pool"); listSomeString.add("None of the above"); listSomeAnotherString.add("-"); listSomeAnotherString.add("XxxZxx Snowboarding"); listSomeAnotherString.add("AaaBbb Rowing"); listSomeAnotherString.add("CccDdd Knitting"); listSomeAnotherString.add("Eee Fff Speed reading"); listSomeAnotherString.add("Eee Fff Pool"); listSomeAnotherString.add("Eee Fff None of the above"); // Initialize and customize components someTextField.setFont(new Font("Serif", Font.BOLD, 16)); someTextField.setForeground(Color.black); someTextField.setBackground(Color.orange); someTextField.setName("someTextField"); someTextField.setDataList(listSomeString); someComboBox.setPrototypeDisplayValue("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); someComboBox.setFont(new Font("Serif", Font.BOLD, 16)); someComboBox.setForeground(Color.black); someComboBox.setBackground(Color.YELLOW); someComboBox.getEditor().selectAll(); someComboBox.getEditor().getEditorComponent().setBackground(Color.YELLOW); ((JTextField) someComboBox.getEditor().getEditorComponent()).setDisabledTextColor(Color.black); someComboBox.setName("someComboBox"); someComboBox.setDataList(listSomeAnotherString); // Create frame and add components frame = new JFrame(); frame.setLayout(new GridLayout(0, 1, 10, 10)); frame.add(someTextField); frame.add(someComboBox); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocation(100, 100); frame.pack(); frame.setVisible(true); // Focus and select text field SwingUtilities.invokeLater(new Runnable() { @Override public void run() { someTextField.setText("-"); someComboBox.getEditor().setItem(0); someComboBox.getEditor().selectAll(); someTextField.grabFocus(); someTextField.requestFocus(); someTextField.setText(someTextField.getText()); someTextField.selectAll(); } }); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { AutoCompleteTextField aCTF = new AutoCompleteTextField(); } }); } }
Résultat
Ce code créera un JFrame avec deux composants : un JTextfield et une JList. Au fur et à mesure que vous tapez dans le JTextfield, le programme recherchera des suggestions dans la liste des chaînes et les affichera dans la JList.
Personnalisation
Vous pouvez personnaliser le comportement de la fonctionnalité de saisie semi-automatique en fonction de vos besoins, comme modifier l'algorithme de tri, ajuster le format d'affichage des suggestions ou définir un nombre maximum de suggestions à afficher.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!