Suche in JList ?

Dox

Mitglied
Hallo erstmal alle zusammen,

habe mal ne Frage zur JList. Wie kann ich in der JList nach einem Eintrag suchen. :confused:
Habe schon etliches versuch aber nichts hatte das gewünschte Ergebnis. :(

Ich hoffe Ihr könnt mir weiterhelfen
 
Hallo!

Wie wär's denn damit:

Code:
package de.tutorials;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JTextField;
import javax.swing.ListModel;

public class Test01 extends JFrame {

	private static final long serialVersionUID = -4379103601358227731L;
	private JTextField txtSuche;
	private JLabel lblSuche;
	private JList list;

	public Test01() {
		super("Test01");
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		txtSuche = new JTextField(10);
		txtSuche.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				ListModel model = list.getModel();
				String suchtext = txtSuche.getText().trim();
				if (suchtext == null || suchtext.equals("")){
					list.setSelectedIndex(-1);
					return;
				}
				int size = model.getSize();
				for (int i = 0; i < size; i++) {
					Object o = model.getElementAt(i);
					if (o.equals(suchtext)) {
						list.setSelectedIndex(i);
						return;
					}
				}
			}
		});

		lblSuche = new JLabel("Suchtext");
		list = new JList(new Object[] { "abc", "def", "ghi", "jkl", "mno",
				"pqr", "stu", "vwx" });

		Container c = getContentPane();
		c.add(list, BorderLayout.NORTH);
		c.add(lblSuche, BorderLayout.CENTER);
		c.add(txtSuche, BorderLayout.EAST);

		pack();
		setVisible(true);
	}

	public static void main(String[] args) {
		new Test01();
	}
}

Gruß Tom
 

Neue Beiträge

Zurück