zuletzt markiertes element einer JList

wessi

Grünschnabel
Hallo,

ich habe das Problem, dass ich in einer JList nachdem ich einen Eintrag ausgewählt habe gerne wissen möchte, welcher Eintrag davor ausgewählt war, also der Eintrag, der vor der neuen Auswahl markiert war. Ich hoffe das Problem ist verständlich!? Den aktuell markierten Eintrag zu bekommen ist ja nicht das Problem.

Gruß
Wessi
 
Hallo Wessi,

schau mal hier:
Java:
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class ListBefore extends JFrame implements ListSelectionListener {

	private String[] items = { "one", "two", "three" };

	private JList list = new JList(items);

	private String memory = "";

	public ListBefore() {
		super("ListBefore");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setAlwaysOnTop(true);
		this.setLocationByPlatform(true);

		this.add(list);

		this.pack();
		this.setVisible(true);

		if (list.getSelectedValue() != null)
			memory = list.getSelectedValue().toString();

		list.addListSelectionListener(this);
	}

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

	public void valueChanged(ListSelectionEvent e) {
		System.out.println("Old value: " + memory);
		memory = list.getSelectedValue().toString();
		System.out.println("New value: " + memory);
	}
}


Vg Erdal
 
Hallo!

Ginge auch so:
Java:
/**
 * 
 */
package de.tutorials;

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;

import javax.swing.JFrame;
import javax.swing.JList;

/**
 * @author Tom
 * 
 */
public class JListChangeTrackingExample extends JFrame {

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

        JList list = new JList(new Object[] { "AAAAAAAAAAAAAAAAAAAAAA",
                "BBBBBBBBBBBBBBB", "CCCCC" }) {
            PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(
                    this);

            {
                propertyChangeSupport.addPropertyChangeListener(
                        "selectionInterval", new PropertyChangeListener() {
                            public void propertyChange(PropertyChangeEvent evt) {
                                System.out.println("Old SelectionIndex: "
                                        + evt.getOldValue()
                                        + " New SelectionIndex: "
                                        + evt.getNewValue());
                            }
                        });
            }

            public void setSelectionInterval(int anchor, int lead) {
                propertyChangeSupport.firePropertyChange("selectionInterval",
                        getSelectedIndex(), anchor);
                super.setSelectionInterval(anchor, lead);
            }

        };

        add(list);
        pack();
        setVisible(true);
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        new JListChangeTrackingExample();
    }

}

Gruß Tom
 
Zurück