ユーザー インターフェイスの領域では、多くの場合、ユーザーが提案によってデータを簡単に入力できる機能を提供することが望まれます。入力した文字に基づいて補完される可能性があります。 Java では、この機能は、ユーザー入力に JTextfield コンポーネントを利用し、候補を表示するために JList コンポーネントを利用することで実現できます。
このオートコンプリート機能の実装には、次の 2 つの主要な手順が含まれます。
この概念をさらに詳しく説明するために、簡潔なコード例を詳しく説明します。
import java.util.ArrayList; import javax.swing.*; public class AutoComplete { private JFrame frame; private ArrayList<String> suggestions; private JTextfield textField; private JList<String> suggestionList; public AutoComplete() { // Populate suggestions suggestions = new ArrayList<>(); suggestions.add("Apple"); suggestions.add("Banana"); suggestions.add("Orange"); // Initialize components textField = new JTextfield(); suggestionList = new JList<>(); // Implement autocomplete logic textField.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { // Filter suggestions based on user input String input = textField.getText(); DefaultListModel<String> listModel = new DefaultListModel<>(); for (String suggestion : suggestions) { if (suggestion.startsWith(input)) { listModel.addElement(suggestion); } } // Update the suggestion list suggestionList.setModel(listModel); } @Override public void keyPressed(KeyEvent e) {} @Override public void keyReleased(KeyEvent e) {} }); // Display the components frame = new JFrame(); frame.setLayout(new GridLayout(2, 1)); frame.add(textField); frame.add(suggestionList); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new AutoComplete(); } }); } }
この例では、ユーザー入力は、事前に設定された候補リストに対してフィルター処理されます。ユーザーが入力すると、候補リストが動的に更新され、一致するオプションのみが表示されます。このアプローチを利用することで、開発者はユーザーに、より高速かつ効率的なデータ入力プロセスを提供できます。
以上がJTextField と JList を使用して Java でオートコンプリート機能を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。