Selasa, 16 September 2025

JAVA - Search Text

 





import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.ArrayList;

import java.util.List;


public class SimpleSearchEngineGUI extends JFrame {


    private JTextField searchField;

    private JList<String> resultList;

    private DefaultListModel<String> listModel;

    private List<String> dataStore; // Your data source


    public SimpleSearchEngineGUI() {

        setTitle("Simple Search Engine");

        setSize(400, 300);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        setLayout(new BorderLayout());


        // Initialize data (replace with your actual data loading)

        dataStore = new ArrayList<>();

        dataStore.add("Apple is a fruit.");

        dataStore.add("Banana is a yellow fruit.");

        dataStore.add("Carrot is a vegetable.");

        dataStore.add("Another apple pie recipe.");


        // Search Panel

        JPanel searchPanel = new JPanel();

        searchField = new JTextField(20);

        JButton searchButton = new JButton("Search");

        searchPanel.add(searchField);

        searchPanel.add(searchButton);

        add(searchPanel, BorderLayout.NORTH);


        // Result List

        listModel = new DefaultListModel<>();

        resultList = new JList<>(listModel);

        JScrollPane scrollPane = new JScrollPane(resultList);

        add(scrollPane, BorderLayout.CENTER);


        // Event Listener

        searchButton.addActionListener(new ActionListener() {

            @Override

            public void actionPerformed(ActionEvent e) {

                performSearch();

            }

        });

        searchField.addActionListener(new ActionListener() { // Allow Enter key to trigger search

            @Override

            public void actionPerformed(ActionEvent e) {

                performSearch();

            }

        });

    }


    private void performSearch() {

        String query = searchField.getText().toLowerCase();

        listModel.clear(); // Clear previous results


        if (query.isEmpty()) {

            // Optionally show all data or a message

            for (String item : dataStore) {

                listModel.addElement(item);

            }

            return;

        }


        for (String item : dataStore) {

            if (item.toLowerCase().contains(query)) {

                listModel.addElement(item);

            }

        }

    }


    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {

            @Override

            public void run() {

                new SimpleSearchEngineGUI().setVisible(true);

            }

        });

    }

}


Tidak ada komentar: