I'm working on an autocomplete JList of Vectors which suggests according to text entry in a JTextField. Thus, at any given point during text alteration i.e. during text entry as well as backspacing existing text, the JList should display only the items that contain the search string.

I tried the following code:

Java Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Vector;

public class MyList {		
	JTextField searchField = new JTextField();
	MyList() {
		JFrame myFrame = new JFrame();
		Vector<String> listElements = new Vector<String>();		
		final JList list = new JList(listElements);		
		final JScrollPane spane = new JScrollPane(list);
		myFrame.setLayout(new GridLayout(1,1));		
		searchField.addKeyListener(new KeyAdapter() {
        	public void keyPressed(KeyEvent keyEvent) {
        		String searchText = searchField.getText();        		
        		Vector<String> newListElements = new Vector<String>();        		
	        	for(int i = 0; i < list.getModel().getSize(); i++) {
        			String listElement = list.getModel().getElementAt(i).toString();
	            	if(listElement.toLowerCase().contains(searchText.toLowerCase())) {            			
            			newListElements.add(i, listElement);            			            			            			
		myFrame.setSize(300, 300);		
	public static void main(String args[]) {
		MyList list = new MyList();
I'm experiencing different runtime problems at different stages, so rather than asking multiple questions, I request you to examine the above code, point out any discrepancies therein and suggest possible improvements. Thanks a lot.